javascript - 我该如何设置这个条件? (Jquery/javascript)

标签 javascript jquery jquery-selectors conditional-statements

感谢您的时间,首先,我是一个菜鸟,一直在通过自己的 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/

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

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

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

关于javascript - 我该如何设置这个条件? (Jquery/javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28930307/

相关文章:

javascript - 进行自动实时聊天/假聊天,我的 JavaScript 跳过第一个响应

javascript - jquery 可以实现这种闪光效果吗?

jQuery 函数参数无法正常工作

javascript - 当窗口调整大小效果不佳时更改框的 css

javascript - 当用户选中复选框列表中的复选框之一时,如何禁用该复选框?

jquery - 在 jQuery 中选择 sibling 的 sibling

JQuery按名称选择问题

javascript - 如何将当前登录用户选择为我选择的选项值

javascript - 使用 jQuery 时,是否有任何简单的方法来获取 DOM 后代,就像使用parents()方法一样?

javascript - 苹果 TVML : Send APP to background when Menu button pressed on Siri remote