1
또 다른 머리 scratcher,이 하나! ONE addClass() 행을 제외하고 아래의 모든 항목이 작동하는 이유는 무엇입니까?each() 내의 each()와 hasClass 내의 addClass가 작동하지 않습니다.
var arr = ['1000','1001','1002','1003','1004','1005'],
allarr = 0;
$.each(arr, function(i, value) {
$('#parent ul.list1 li a, #parent ul.list2 li a').each(function() {
if($(this).hasClass('n-'+value)) {
console.log('yes for: '+$(this).html()); //WORKS: it lists 6x "Something"
allarr++; //WORKS: in the end, it says "6"
$(this).addClass('active'); //DOES NOT WORK.
} else {
$(this).removeClass('active');
}
});
});
console.log('allarr: '+allarr);
HTML :
<ul class="list1">
<li><a class="n-1000">Something</a></li>
<li><a class="n-1001">Something</a></li>
<li><a class="n-1003">Something</a></li>
<li><a class="n-1005">Something</a></li>
</ul>
<ul class="list2">
<li><a class="n-1002">Something</a></li>
<li><a class="n-1004">Something</a></li>
<li><a class="n-1006 active">Something that should have the active class REMOVED</a></li>
</ul>
이상한, 아니? 도움을 주시면 감사하겠습니다. 감사!
업데이트 : $(this).addClass('active');
을 $(this).addClass('active areyoukidding');
으로 바 꾸었습니다. 그 두 번째 클래스가 문제없이 추가되면 어떻게 되나요? active
은 여전히 무시됩니다. 누구도 이전에 이것을 보았습니까? 이 앱이 나중에 덮어 쓸 수있는 앱은 없습니다. 이미 스크립트의 다른 많은 장소에 active
클래스를 추가하고 있습니다.
글쎄, 당신은 틀림 없습니다. 당연하지. 첫 번째 루프 전에 else 절을 이동 했으므로 이제는 완벽하게 작동합니다. 때로는 두 번째 눈 쌍이 필요합니다 :) 감사합니다! – bobsoap