使用jQuery:包含两个不同的div

时间:2015-04-02 17:51:40

标签: jquery

我有一种罕见的情况,我想隐藏内容,如果页面上有两件事情是真的。一,我需要查看人员余额是否为0美元,并检查他们所选择的旅游是否包含“已关闭”字样。我很难将两者结合起来:包含陈述。

我试过了:

$(".paid:contains('$0'),(.tour:contains('Closed')").html(function(_, html) { $(".message").hide(); });

我尝试添加一个+,我尝试添加一个:介于两者之间,我尝试将它们分成两行,但它似乎无法正常工作。

我不想隐藏这条消息' div完全基于一个,我需要两者都是真的。谢谢!

3 个答案:

答案 0 :(得分:2)

您可以检查jQuery对象的length

var $els = $(".paid:contains('$0'), .tour:contains('Closed')");

// Two elements would be selected
if($els.length === 2) {
    $els.html(function(_, html) {
        $(".message").hide();
    });
}

一个简单的小提琴:http://jsfiddle.net/1f4r5ynd/

答案 1 :(得分:1)

假设.paid是输入控件,.tour是您可以执行的选择:

if ($('.paid').val().indexOf('$0') >= 0 && 
    $('.tour:seleted').text().indexOf('Closed') >= 0) {

   $(".message").hide();
}

修改

阅读完澄清后,这似乎可以解决问题

if ($('.paid').text() == '$0'&& $(".tour:contains('Closed')")) {

   $(".message").hide();
}

答案 2 :(得分:0)

//check if exists an element with class '.paid' that contains '$0',
//and if exists an element with class '.tour' that contains 'Closed'
if($(".paid:contains('$0')").length>0 && $(".tour:contains('Closed')").length>0){
     $(".message").hide();   
}