JQuery Multiple If语句

时间:2015-03-11 20:27:25

标签: javascript jquery if-statement logical-operators

我有以下代码块,效果很好:

jQuery(".archive-job_listing-layout").click(function(evt) {
        evt.preventDefault();
        if (!jQuery("body").hasClass('post-type-archive-job_listing')) 
            return;
        console.log("Click " + jQuery(this).data('style'));
        console.log(jQuery(window).width());
        if (jQuery(this).data('style') == "grid" && jQuery(window).width() < 800) {
            jQuery("ul.job_listings").css('display','block');
            jQuery("table#wswp-header-row").hide().remove();
            jQuery(".table_padding").hide().remove();
            return;
        }

        layout_to_table("click");
    })
});

我想要的是添加另一行,如:

if (!jQuery("body").hasClass('archive tax-job_listing_type'))
return;

但添加此内容会破坏代码。我尝试过使用If Else,Or(||)和(&amp;&amp;),但没有任何效果。 如果我用'post-type-archive-job_listing'替换'archive tax-job_listing_type',代码也可以正常工作,我似乎无法让这两行代码同时工作。

3 个答案:

答案 0 :(得分:3)

这应该有效:

if(!jQuery("body").hasClass('archive tax-job_listing_type') && !jQuery("body").hasClass('post-type-archive-job_listing'))
    return;

答案 1 :(得分:1)

或许用更多的括号分开将为你效劳:

if (!(jQuery("body").hasClass('post-type-archive-job_listing')) || !(jQuery("body").hasClass('archive tax-job_listing_type'))) 
        return;

答案 2 :(得分:1)

可以使用接受多个选择器的is()。当多个选择器传递给它时,它将像or一样

if(!jQuery("body").is('.archive tax-job_listing_type, .post-type-archive-job_listing'))

DEMO