2013-11-26 91 views
1

我一直在使用下面的代碼來檢查,如果一個div可見:檢查多個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之一中可見一次我該怎麼辦?

回答

5

試試這個:

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

http://api.jquery.com/is/:「......如果這些元素中的至少一個給定的參數匹配返回true」。

+0

簡單的方法,完美的工作!謝謝 – Hwende

+0

不客氣:) – leaf

1

試試這個:

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

我一個包裝添加到所有星期幾和做這樣的事情:選擇的元素$("#monday,#tuesday").find(":visible").length == 1

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

檢查長度

喜歡的東西

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

@upvoter閱讀文檔:http://api.jquery.com/is/。 – leaf

+0

謝謝@wared,可能'找到'是對的 – StupidDev

+0

你不是這樣的@StupidDev:D – leaf

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();      
}