感谢您的时间,首先,我是一个通过自己的javascript学习的noobie,所以我没有很好地管理选择器以达到我想要的效果。这是我的问题:
HTML
<ul id='stuff' class='goods'>
<li>list item 1</li>
<li>list item 2</li>
<li>list item 3</li>
<li><span class='highlighted'>list item 4</span></li>
<li>list item 5</li>
</ul>
<ul id='stuff2' class='goods'>
<li>list item 1</li>
<li>list item 2</li>
<li>list item 3</li>
<li>item 4</li>
<li>list item 5</li>
</ul>
CSS
.highlighted{
color: red;
}
.goods{
border:1px solid red;
cursor: pointer;
padding: 0px;
list-style: none;
}
.match_group{
border: 1px solid black;
}
请看这里pelase:* http://jsfiddle.net/nero_noob_123/ctcn7kfy/2/
基本上我想用jquery和javascript实现它是以下....但我不知道怎么写它作为一个条件所以尝试阅读如下:
$('#stuff2').addClass('match_group');
$('#stuff2').addClass('match_group');
if($('li').has('span.highlighted').length){ //so span exist!
$('span.highlighted').closest('.goods').addClass('match_group');
}else if($('.goods').hasClass('match_group') && // span.highlight DOESN'T EXIST inside .goods) {
/// remove the match_group class from '.goods' where span.highlight doesn't exist
}else{ if any of the '.goods' classes has span.highlighted inside them, don not apply .match_group
}
我希望我已经清楚了,对不起,我能用JQ和javascript中的当前知识做得最好
PD:随时修改我写的crapy代码以实现我的需要,谢谢!答案 0 :(得分:0)
您可以将第二个参数传递给toggleClass
,该参数将打开或关闭指定的类。 https://api.jquery.com/toggleClass/
这可以是一个布尔值,或(这似乎没有记录)它可以是一个返回布尔结果的函数!
$('.goods').toggleClass('match_group', function() {return $(this).has("span.highlighted");});