私はそのようなhtmlコードを持っています:
<ul class="myClass">
<li><a href="url1.html">first link</a></li>
<li><a href="url2.html">second link</a></li>
<li><a href="url2.html">third link</a></li>
<li><a href="url3.html">fourth link</a></li>
</ul>
リンクを押すと、押されたリンクの次のプロパティ文字列class="active"に書き込む必要があるという考え方です。たとえば、
<li><a href="url1.html">first link</a></li>`
それを押すと、jQuery関数はそれを次のように変更する必要があります。
<li><a class="active" href="url1.html">first link</a></li>
しかし、私のjQuery関数は実際には機能しません。助けていただければ幸いです。jQuery関数のソースは次のとおりです。
$(document).ready(function(){
var currentUrl = document.location.pathname;
$('#myClass').each(function() {
if ( currentUrl == $(this).children('a').attr('href')) {
$(this).children('a').addClass('active');
}
});
});
UPDATEログを入れconsole.log(currentUrl +"=="+ $(this).children('a').attr('href'));
たところ、状態が未定義であるとのことでした。「if」条件は実行されないと思います。なぜなら、私はand else条件を入れて、あちこちに置いてalert
いるので、プレス呼び出しのアラートとif
条件は実行されないからです。