如何设置此条件?(Jquery/javascript)

how can I set this conditions? (Jquery/javascript)

本文关键字:Jquery javascript 条件 设置 何设置      更新时间:2023-09-26

感谢您的时间,首先,我是一个菜鸟,一直在用自己的javascript学习,所以我不能很好地管理选择器来实现我想要的。这是我的问题:

.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;    
}

看这里 佩拉塞: * 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:随意修改我写的垃圾代码来实现我需要的东西,谢谢!

可以将第二个参数传递给将打开或关闭指定类的toggleClass。 https://api.jquery.com/toggleClass/

这可以是一个布尔

值,或者(这似乎没有被记录)它可以是一个返回布尔结果的函数!

$('.goods').toggleClass('match_group', function() {return $(this).has("span.highlighted");});

JSFiddle: http://jsfiddle.net/TrueBlueAussie/ctcn7kfy/4/