0

私がネットから降りたこのコードについて助けが必要です

$(document).ready(function(){
jQuery(".linkbar li").each(function(){
var href = jQuery(this).find('a').attr('href');
if (href === window.location.pathname) {
$(this).addClass('current');
}
});
});

document.write(href);を実行した場合

「未定義」になります

href = jQuery(this).find('a').attr('href');関数の前にvarを配置.each()すると、すべてのリンクが現在のクラスに変更されます

以下は私のHTMLとCSSです。現在のページのcssリンクを変更する必要があります。Jquery/JSはあまり得意ではありません。問題とその解決方法を教えてください。

<div class ="linkbar">

<a href = "/HTS/about-us.php"><li> ABOUT US </li> </a>
<a href = "service.php"><li> SERVICES </li> </a>
<a href = "download.php"><li> DOWNLOAD </li> </a>
</div>

CSS

.linkbar li{
text-decoration:none;
float:left;
list-style-type: none;
font-size:11px;
width:auto;
padding:9px 18px 9px 18px;
}

.current{
background-color:#fecd0f;
vertical-align:center;
color:#fff;
}
4

3 に答える 3

1

HTML が無効です。<li>タグはタグ内にある必要があります<ul>。タグ<a>をタグに挿入して機能させ<li>ます。find("a")

<ul class ="linkbar">
  <li><a href = "/HTS/about-us.php">ABOUT US </a></li> 
  <li><a href = "service.php">SERVICES </a></li> 
  <li><a href = "download.php">DOWNLOAD </a></li> 
</ul>
于 2012-12-23T12:45:07.083 に答える
0

まあ、あなたは要素内を見つける.find()を持っていて、liタグの親としてタグを固定しているので、代わりにこれを使用します:

var href = $(this).parent('a').attr('href');

それがこれだった場合、これがあります:

<li><a href = "/HTS/about-us.php"> ABOUT US  </a></li>
<li><a href = "service.php"> SERVICES </a></li>
<li><a href = "download.php"> DOWNLOAD  </a></li>

まだ使用することはありませんfind()が、これを使用してください:

var href = $(this).children('a').attr('href');
于 2012-12-23T12:42:23.363 に答える
0

最初にクラスを削除してから、詳細については Jquery ドキュメントを参照できるクラスを追加する必要があります: http://api.jquery.com/addClass/

$(this).removeClass(".linkbar li").addClass('current');

ul 内に li タグを必ず配置する必要があります。

于 2012-12-23T12:49:48.533 に答える