使用jQuery来设置类的元素
我得到了以下HTML:使用jQuery来设置类的元素
<ul class="specs">
<li>
<div class="trigger">› City (2)</div>
<div class="cityByLocation">
<ul>
<li class="cityInfo">
<div class="cityName" style="float: left;">
› New York
</div>
<div class="cityDistance" style="float: left;">
430 miles
</div>
<div class="btn-take"></div>
</li>
<li class="cityInfo">
<div class="cityName" style="float: left;">
› Chicago
</div>
<div class="cityDistance" style="float: left;">
430 miles
</div>
<div class="btn-take"></div>
</li>
</ul>
</div>
</li>
<ul>
当我点击“市(2)”,两者的div下出现。但是,我想为他们添加一个类。
这是我的js现在:
$('.trigger').click(function()
{
$(this).siblings('div').eq($(this).index()).toggle();
$(this).eq($(this).index()).toggleClass("locationSelected");
return false;
});
这增加了名字后面的蓝色背景“市(2)”,而不是底层的div,这是我想要的。
及其与类“cityByLocation”股利我想补充locationSelected到类。
编辑:
我结束了使用
$( '扳机 ')点击(函数(){$ (本).siblings(' DIV')EQ($。 (this).index())。toggle(); $(this).toggleClass(“locationSelected”); $(this).siblings('div')。eq($(this).index()) .toggleClass(“locationSelected”);
return false; });
比使用toggleClass
相反,使用addClass
$(this).eq($(this).index()).addClass("locationSelected");
+ 1'd为OP的代码的正确答案,但纠正我,如果我错了... $(this).eq($(this).index() )=== $(本) – Popnoodles
$(本).addClass( “locationSelected”);使得这里 –
.addClass("locationSelected");
我建议,假设你想在类名添加到嵌套在相邻的div
和ul
内div
元素:
$(this).next('.cityByLocation').find('div').addClass('locationSelected');
岂不$(本).EQ($(这个).index())和$(this)是一样的吗? – Popnoodles
看来你是对的。我很困惑于jQuery选择 – sindrem