1

これが機能しない理由がわかりません。リストがあり、各アイテムのアンカーに背景画像があります。jQueryを使用して、選択したアンカーの直前のアイテムの背景画像を削除しようとしています. HTMLは次のとおりです。

<ul id="menu">
<li class="last"><a href="#">Contact Us</a></li>
<li><a href="#">Testimonials</a></li>
<li><a href="#">Projects</a></li>
<li class="selected"><a href="#">Our Services</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">Home</a></li>
</ul>

そして、背景画像を削除しようとするために使用しているjQueryを次に示します(テスト目的でdisplay:noneを使用):

$('li.selected a').prev().css( {display : "none"});

以下を使用すると、機能します。

$('li.selected').prev().css( {display : "none"});

しかし、アンカー タグを含めるとすぐに停止します。

TLDR:基本的に、選択したリンクの前にある「プロジェクト」を選択し、それに関連付けられている背景画像を削除する必要があります(リスト項目ではなくリンクに)。そのコードが機能しない理由を誰か教えてもらえますか?

ありがとう

4

2 に答える 2

1

.prev(0)選択した要素.next()の前と次の兄弟からそれぞれ選択します。あなたの目的のために、これはうまくいきます:

$('li.selected').prev().find("a").css( {display : "none"});
于 2012-07-22T02:57:39.007 に答える
1
于 2012-07-22T02:58:17.340 に答える