2016-11-18 15 views
6

私はこれを絶対に邪魔しています。ここに私のCSSです:クラスは存在しますが見つかりません

 $(window).load(function(){ 
 

 
      $('.zichtbaar').removeClass('zichtbaar').addClass('verborgen'); 
 

 
      $('#zoekitem').focus(); 
 

 

 

 
      $('.letter').on('click', function(){ 
 

 
       $('.zichtbaar').addClass('verborgen').removeClass('zichtbaar'); 
 

 
       var letter = $(this).text(); 
 

 
       var klasse = "LETTER-" + letter; 
 

 
       var el = $('.' + klasse); 
 
       
 
       alert(klasse + " - " + el.length); 
 
       
 
       $('#alfabet-header').html(letter); 
 

 
       el.addClass('zichtbaar').removeClass('verborgen'); 
 

 
      }); 
 

 
     });
 #zoekitem{ 
 

 
     font-size: 1.3em; 
 

 
     } 
 

 

 
     #letter-header{ 
 

 
     height: 32px; 
 

 
     color: royalblue; 
 

 
     font-size: 1.5em; 
 

 
     font-weight: bold; 
 

 
     overflow: hidden; 
 

 
     } 
 

 

 
     .letter{ 
 

 
     float: left; 
 

 
     width: 3.7037037037037%; 
 

 
     cursor: pointer; 
 

 
     text-align: center; 
 

 
     } 
 

 

 
     #alfabet-header{ 
 

 
     font-size: 5em; 
 

 
     font-weight: bold; 
 

 
     } 
 

 

 
     .inhoud{ 
 

 
     margin-left: 10%; 
 

 
     } 
 

 
     .verborgen{ 
 

 
     display:none; 
 

 
     } 
 

 

 
     #zoek-header{ 
 

 
     font-size: 2em; 
 

 
     }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<div id="letter-header"> 
 
      <div class="letter">A</div> 
 

 
      <div class="letter">B</div> 
 

 
      <div class="letter">​C</div> 
 

 
      <div class="letter">​​D</div> 
 

 
      <div class="letter">​E</div> 
 

 
      <div class="letter">F</div> 
 

 
      <div class="letter">​G</div> 
 

 
      <div class="letter">​H</div> 
 

 
      <div class="letter">​​I</div> 
 

 
      <div class="letter">J</div> 
 

 
      <div class="letter">​​K</div> 
 

 
      <div class="letter">L</div> 
 

 
      <div class="letter">​M</div> 
 

 
      <div class="letter">​N</div> 
 

 
      <div class="letter">O</div> 
 

 
      <div class="letter">​P</div> 
 

 
      <div class="letter">​Q</div> 
 

 
      <div class="letter">​R</div> 
 

 
      <div class="letter">​S</div> 
 

 
      <div class="letter">T</div> 
 

 
      <div class="letter">​U</div> 
 

 
      <div class="letter">V</div> 
 

 
      <div class="letter">​W</div> 
 

 
      <div class="letter">​X</div> 
 

 
      <div class="letter">Y</div> 
 

 
      <div class="letter">Z</div> 
 

 
      <div class="letter">0-9</div> 
 

 
     </div> 
 

 
     <br/> 
 

 

 
     <div> 
 

 
      <div id="alfabet-header"></div> 
 

 
      <div id="zoek-header" class="verborgen">Zoekresultaten voor:</div> 
 

 
      <div class="inhoud LETTER-A verborgen"><a href="www.appels.com" target="_blank">Appels</a></div> 
 

 
      <div class="inhoud LETTER-B verborgen"><a href="www.boerenkool.com" target="_blank">Boerenkool</a></div> 
 

 
      <div class="inhoud LETTER-B verborgen"><a href="www.bonen.com" target="_blank">Bonen</a></div> 
 

 
      <div class="inhoud LETTER-B verborgen"><a href="www.bosbessen.com" target="_blank">Bosbessen</a></div> 
 

 
      <div class="inhoud LETTER-C verborgen"><a href="www.citrus.com" target="_blank">Citrus</a></div> 
 

 
      <div class="inhoud LETTER-K verborgen"><a href="www.kappertjes.com" target="_blank">Kappertjes</a></div> 
 

 
      <div class="inhoud LETTER-T verborgen"><a href="www.tuinbonen.com" target="_blank">Tuinbonen</a></div> 
 

 
      <div class="inhoud LETTER-W verborgen"><a href="www.wittekool.com" target="_blank">Witte kool</a></div> 
 

 
     </div>

私がクリックすると、A、B、またはTのすべてが正常です。アラートは、私が探しているクラス名を持つ要素の数を表示し、それらを表示します。しかし、私がC、K、またはWをクリックすると、それらの要素ははっきりと存在していますが、見つかりません。

私は、なぜこれが起こるかについての手がかりの最も暗い色合いを持っていません。

+4

intをあなたのHTMLマークアップ中%u200B'ゼロ幅スペース 'をたくさん持っているようなので、あなたのスクリプトはなり.replace(/\u200B/g,'');

です。 – epascarello

答えて

12

HTMLソースには、Unicodeのゼロ幅の空白文字がたくさんあります。特に、「C」ボックスのテキストの冒頭には1つあります。したがって、要素の.text()にアクセスすると、「C」だけではありません。

+1

好奇心を要して、OPのコピー貼り付けからこれを見つける方法をどうやって管理しましたか? – roberto06

+5

例えばJSFiddleに貼り付けると、それらが強調表示されます。 – Devilscomrade

+0

私はHTMLで単に "C"を使うことはできませんか?そうですか?または、私はjavascriptで別の方法でアクセスする必要がありますか?解決策は何ですか? – johannes

0

削除不要なUnicode文字..以下を確認して、私はちょうど要素を検査

$(window).load(function(){ 
 
     $('.zichtbaar').removeClass('zichtbaar').addClass('verborgen'); 
 
     $('#zoekitem').focus(); 
 
     $('.letter').on('click', function(){ 
 
      $('.zichtbaar').addClass('verborgen').removeClass('zichtbaar'); 
 
      var letter = $(this).text(); 
 
      var klasse = "LETTER-" + letter; 
 
      var el = $('.' + klasse); 
 
      alert(klasse + " - " + el.length); 
 
      $('#alfabet-header').html(letter); 
 
      el.addClass('zichtbaar').removeClass('verborgen'); 
 
     }); 
 
    });
#zoekitem{ 
 
    font-size: 1.3em; 
 
    } 
 
    #letter-header{ 
 
    height: 32px; 
 
    color: royalblue; 
 
    font-size: 1.5em; 
 
    font-weight: bold; 
 
    overflow: hidden; 
 
    } 
 
    .letter{ 
 
    float: left; 
 
    width: 3.7037037037037%; 
 
    cursor: pointer; 
 
    text-align: center; 
 
    } 
 
    #alfabet-header{ 
 
    font-size: 5em; 
 
    font-weight: bold; 
 
    } 
 
    .inhoud{ 
 
    margin-left: 10%; 
 
    } 
 
    .verborgen{ 
 
    display:none; 
 
    } 
 
    #zoek-header{ 
 
    font-size: 2em; 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="letter-header"> 
 
     <div class="letter">A</div> 
 
     <div class="letter">B</div> 
 
     <div class="letter">C</div> 
 
     <div class="letter">D</div> 
 
     <div class="letter">E</div> 
 
     <div class="letter">F</div> 
 
     <div class="letter">G</div> 
 
     <div class="letter">H</div> 
 
     <div class="letter">I</div> 
 
     <div class="letter">J</div> 
 
     <div class="letter">K</div> 
 
     <div class="letter">L</div> 
 
     <div class="letter">M</div> 
 
     <div class="letter">N</div> 
 
     <div class="letter">O</div> 
 
     <div class="letter">P</div> 
 
     <div class="letter">Q</div> 
 
     <div class="letter">R</div> 
 
     <div class="letter">S</div> 
 
     <div class="letter">T</div> 
 
     <div class="letter">U</div> 
 
     <div class="letter">V</div> 
 
     <div class="letter">W</div> 
 
     <div class="letter">X</div> 
 
     <div class="letter">Y</div> 
 
     <div class="letter">Z</div> 
 
     <div class="letter">0-9</div> 
 
    </div> 
 
    <br/> 
 
    <div> 
 
     <div id="alfabet-header"></div> 
 
     <div id="zoek-header" class="verborgen">Zoekresultaten voor:</div> 
 
     <div class="inhoud LETTER-A verborgen"><a href="www.appels.com" target="_blank">Appels</a></div> 
 
     <div class="inhoud LETTER-B verborgen"><a href="www.boerenkool.com" target="_blank">Boerenkool</a></div> 
 
     <div class="inhoud LETTER-B verborgen"><a href="www.bonen.com" target="_blank">Bonen</a></div> 
 
     <div class="inhoud LETTER-B verborgen"><a href="www.bosbessen.com" target="_blank">Bosbessen</a></div> 
 
     <div class="inhoud LETTER-C verborgen"><a href="www.citrus.com" target="_blank">Citrus</a></div> 
 
     <div class="inhoud LETTER-K verborgen"><a href="www.kappertjes.com" target="_blank">Kappertjes</a></div> 
 
     <div class="inhoud LETTER-T verborgen"><a href="www.tuinbonen.com" target="_blank">Tuinbonen</a></div> 
 
     <div class="inhoud LETTER-W verborgen"><a href="www.wittekool.com" target="_blank">Witte kool</a></div> 
 
    </div>

1

スニペット。ここで私は解決策を見つけた:

あなたがここに私の手紙 - ヘッダーのdivをコピーする場合はあなたの問題も解決され

enter image description here

1

:これらはNULLバイトの無料です。

<div class="letter">A</div> 
     <div class="letter">B</div> 
     <div class="letter">C</div> 
     <div class="letter">D</div> 
     <div class="letter">E</div> 
     <div class="letter">F</div> 
     <div class="letter">G</div> 
     <div class="letter">H</div> 
     <div class="letter">I</div> 
     <div class="letter">J</div> 
     <div class="letter">K</div> 
     <div class="letter">L</div> 
     <div class="letter">M</div> 
     <div class="letter">N</div> 
     <div class="letter">O</div> 
     <div class="letter">P</div> 
     <div class="letter">Q</div> 
     <div class="letter">R</div> 
     <div class="letter">S</div> 
     <div class="letter">T</div> 
     <div class="letter">U</div> 
     <div class="letter">V</div> 
     <div class="letter">W</div> 
     <div class="letter">X</div> 
     <div class="letter">Y</div> 
     <div class="letter">Z</div> 
     <div class="letter">0-9</div> 
0

@Pointy anwswerから、ビューを変更せずにゼロスペースを削除できます。これらのスペースを削除するsrciptは彼のスニペット

$(window).load(function() { 
 
    $('.zichtbaar').removeClass('zichtbaar').addClass('verborgen'); 
 
    $('#zoekitem').focus(); 
 
    $('.letter').on('click', function() { 
 
     $('.zichtbaar').addClass('verborgen').removeClass('zichtbaar'); 
 
     var letter = '' + $(this).text().replace(/\u200B/g,''); 
 
     var klasse = "LETTER-" + letter; 
 
     var el = $('.' + klasse); 
 
     alert(klasse + " - " + el.length); 
 
     $('#alfabet-header').html(letter); 
 
     el.addClass('zichtbaar').removeClass('verborgen'); 
 
    }); 
 
});
#zoekitem{ 
 
    font-size: 1.3em; 
 
} 
 
#letter-header{ 
 
    height: 32px; 
 
    color: royalblue; 
 
    font-size: 1.5em; 
 
    font-weight: bold; 
 
    overflow: hidden; 
 
} 
 
.letter{ 
 
    float: left; 
 
    width: 3.7037037037037%; 
 
    cursor: pointer; 
 
    text-align: center; 
 
} 
 
#alfabet-header{ 
 
    font-size: 5em; 
 
    font-weight: bold; 
 
} 
 
.inhoud{ 
 
    margin-left: 10%; 
 
} 
 
.verborgen{ 
 
    display:none; 
 
} 
 
#zoek-header{ 
 
    font-size: 2em; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="letter-header"> 
 
    <div class="letter">A</div> 
 
    <div class="letter">B</div> 
 
    <div class="letter">​C</div> 
 
    <div class="letter">​​D</div> 
 
    <div class="letter">​E</div> 
 
    <div class="letter">F</div> 
 
    <div class="letter">​G</div> 
 
    <div class="letter">​H</div> 
 
    <div class="letter">​​I</div> 
 
    <div class="letter">J</div> 
 
    <div class="letter">​​K</div> 
 
    <div class="letter">L</div> 
 
    <div class="letter">​M</div> 
 
    <div class="letter">​N</div> 
 
    <div class="letter">O</div> 
 
    <div class="letter">​P</div> 
 
    <div class="letter">​Q</div> 
 
    <div class="letter">​R</div> 
 
    <div class="letter">​S</div> 
 
    <div class="letter">T</div> 
 
    <div class="letter">​U</div> 
 
    <div class="letter">V</div> 
 
    <div class="letter">​W</div> 
 
    <div class="letter">​X</div> 
 
    <div class="letter">Y</div> 
 
    <div class="letter">Z</div> 
 
    <div class="letter">0-9</div> 
 
</div> 
 
<br/> 
 
<div> 
 
    <div id="alfabet-header"></div> 
 
    <div id="zoek-header" class="verborgen">Zoekresultaten voor:</div> 
 
    <div class="inhoud LETTER-A verborgen"><a href="www.appels.com" target="_blank">Appels</a></div> 
 
    <div class="inhoud LETTER-B verborgen"><a href="www.boerenkool.com" target="_blank">Boerenkool</a></div> 
 
    <div class="inhoud LETTER-B verborgen"><a href="www.bonen.com" target="_blank">Bonen</a></div> 
 
    <div class="inhoud LETTER-B verborgen"><a href="www.bosbessen.com" target="_blank">Bosbessen</a></div> 
 
    <div class="inhoud LETTER-C verborgen"><a href="www.citrus.com" target="_blank">Citrus</a></div> 
 
    <div class="inhoud LETTER-K verborgen"><a href="www.kappertjes.com" target="_blank">Kappertjes</a></div> 
 
    <div class="inhoud LETTER-T verborgen"><a href="www.tuinbonen.com" target="_blank">Tuinbonen</a></div> 
 
    <div class="inhoud LETTER-W verborgen"><a href="www.wittekool.com" target="_blank">Witte kool</a></div> 
 
</div>

+1

HTMLソースを修正するのではなく、なぜこれを行うのですか? – Pointy

+0

ビューのソースが自分の管理下にない可能性があるため – Aroniaina

関連する問題