如果两个条件成立,我需要jQuery来执行任务

时间:2015-06-03 09:49:01

标签: javascript jquery

我需要一些帮助,使用jQuery将if语句放在一起。如果有两个条件,我想更改我网站上的徽标。

这是一些伪代码,希望能够解释我想要存档的内容:

if(li hasClass active and data-menuid is equal to 0033){
    change logo...
}

以下是菜单结构的一个简单示例:

<div id="menu">
    <ul id="menu-primary">
        <li class="menuactive" data-menuid="0011">
        Test1
            <ul class="menu-dropdown">
                <li data-menuid="0022">Test2</li>
                <li class="active" data-menuid="0033">Test3</li>
            </ul>
        </li>
        <li data-menuid="0044">Test4</li>
        <li data-menuid="0055">Test5</li>
    </ul>
</div>

3 个答案:

答案 0 :(得分:1)

if($('li:has(.menuactive[data-menuid="0033"])').length){
    change logo...
}

答案 1 :(得分:1)

另一种解决方法:

var $target = $('li', '#menu-primary');
if( $target.hasclass('active') && $target.data('menuid') == '0033' ){
    // change logo
}

答案 2 :(得分:1)

您可以检查班级和Attribute Equals Selector [name="value"]

的组合
if($('li.menuactive[data-menuid="0033"]').length){
    //Your code to change the logo
}

您可以使用$.fn.filter()

  

将匹配元素集合减少到与选择器匹配的元素或通过函数测试。

var listMeetingCondition = $('li').filter(function(){
    return $(this).hasClass('menuactive') && $(this).attr('data-menuid') == "0033"
});

if(listMeetingCondition.length){
    //Your code to change the logo
}