私が作った配列が必要です。1 つはいくつかのアンカー タグを取得し、もう 1 つは一連の ul を取得します。すべてのアンカー タグには name 属性があり、ul にはアンカー タグの name 属性に一致する ID があります。これに加えて、すべての UL にはクラス ".students" と ".hidden" があります。(.hidden が行うことは、display:none を設定することだけです)
<div>
<ul>
<li><h4><a name="5th-grade">5th Grade</a></h4></li>
<li><h4><a name="6th-grade">6th Grade</a></h4></li>
<li><h4><a name="7th-grade">7th Grade</a></h4></li>
<li><h4><a name="8th-grade">8th Grade</a></h4></li>
</ul>
</div>
<div>
<ul id="5th-grade" class="students hidden ">
<li>Billy Bob</li>
</ul>
<ul id="6th-grade" class="students hidden">
<li>Bob Sackamano</li>
</ul>
<ul id="7th-grade" class="students hidden">
<li>Matt Blunt</li>
</ul>
</div>
私がやろうとしているのは、アンカータグの1つをクリックすると、対応する名前属性が同じIDのulに一致し、「.hidden」クラスを削除して表示し、非表示にすることです「.hidden」クラスを追加して、一致しない他の ul を削除します。
これは、小さなjqueryを使用してこれまでに思いついたものと、停止した場所です。
var aGradelist = $('#grade-list ul li a');
var aStudents = $('.students');
aGradelist.click(function(){
var i = '#' + $(this).attr('name');
$('.students'+i).removeClass('hidden');
for(var j=0;j<aStudents.length;j++)
{
console.log(aStudents.attr('id')[j]);
}
});
正しいulが表示されるのは問題ありませんが、「.hidden」クラスを他のulに追加できませんでした。私の問題の少なくとも 1 つが for ループにあることがわかりました。aStudents 配列の各 ul を調べるのではなく、aStudents 配列の最初の項目の ID の文字を調べるのです。
私はこれに正しい方法でアプローチしていますか?これを行う方法についていくつかのアイデアはありますか?