检查一次是否可以看到多个div

时间:2013-11-26 08:02:43

标签: javascript jquery html

我一直在使用以下代码来检查div是否可见:

if ($("#monday").is(':visible')) {
    document.getElementById('scheduleitem1').style.width = 540;
    $("#scheduleitem1").show();                     
}

该代码运行良好。但是我想检查一次是否可以看到多个div中的一个。

我尝试过以下不起作用的代码:

if ($("#monday" || "#tuesday").is(':visible')) {
    document.getElementById('scheduleitem1').style.width = 540;
    $("#scheduleitem1").show();                     
}

if ($("#monday", "#tuesday").is(':visible')) {
    document.getElementById('scheduleitem1').style.width = 540;
    $("#scheduleitem1").show();                     
}

那么,如果我想检查一次是否可以看到多个div中的一个,我该怎么办?

4 个答案:

答案 0 :(得分:6)

试试这个:

$("#monday,#tuesday").is(':visible')

http://api.jquery.com/is/:“...如果这些元素中至少有一个与给定的参数匹配,则返回true”。

答案 1 :(得分:2)

检查所选元素的长度$("#monday,#tuesday").find(":visible").length == 1

这样的东西
if ($("#monday,#tuesday").find(":visible").length == 1) {
    document.getElementById('scheduleitem1').style.width = 540;
    $("#scheduleitem1").show();                     
}

答案 2 :(得分:1)

试试这个:

if ($("#monday").is(':visible')  || $("#tuesday").is(':visible')) {
    $("#scheduleitem1").css('width', '540px').show();                     
}

我会在所有工作日添加一个包装器并执行以下操作:

if($("#weekDays").find('div:visible')) {
    $("#scheduleitem1").css('width', '540px').show();                     
}

答案 3 :(得分:1)

我知道这个问题表明只有一个元素必须可见。 这个答案适用于想要检查所有元素是否可见的未来访问者。

// Assume that the elements are visible
var is_visible = true;
// Select the elements wanted and go through each of them one by one
$("#monday, #tuesday, #etc").each(function() {
  // Check that the assumption is true for each element selected
  if (!$(this).is(':visible')) {
    is_visible = false;
  }
});
if (is_visible) {
    $("#scheduleitem1").width(540).show();                     
}

更新,简洁起见:

// Check if the elements are not hidden.
if (!$("#monday, #tuesday, #etc").is(':hidden')) {
    $("#scheduleitem1").width(540).show();                     
}