2011-04-07 60 views
2

我想檢查兩個子div是否包含內容,如果它們不是,即它們是空的,那麼我想爲它們添加一個類母公司 這是我的代碼,但是如果子div是空的,這會將class =「noBorder」添加到父div。檢查兩個div是否包含內容,如果沒有添加一個類到它們的容器div

if(('div.nav-previous:empty') && ('div.nav-next:empty')) { 
    jQuery('div#nav-below').addClass('noBorder')   
}; 

任何幫助,這將不勝感激。

吉娜

+0

我需要的是一個類添加到父div只有當兩個子div都是空的。通過一些人的幫助解決它。:) – madameFerry 2011-04-07 15:14:07

+0

你應該點擊旁邊的複選標記來表明問題的最佳答案。歡迎來到StackOverflow! – jbrookover 2011-04-07 15:19:57

回答

2

這是因爲jQuery選擇總是會返回一個值,不管它是否匹配任何東西。

$('.this-doesnt-exist') // returns [] 

上面將返回一個空數組,它將評估爲TRUE。

每當你想檢查jQuery的已傳回一組元素,你必須檢查length屬性:

if($('.this-doesnt-exist').length == 0) { 
    alert('it didnt exist!'); 
} 
1

你if()語句是沒有意義的。從技術上講,它是要求

if(true && true) { 
    //do stuff 
} 

我想你想要做的是檢查是否兩個元素其實都是空的,然後應用樣式。在這種情況下,你會怎麼做:

if($('div.nav-previous:empty').length !=0 && $('div.nav-next:empty').length != 0) { 
    jQuery('div#nav-below').addClass('noBorder')   
}; 

的if()語句現在會問:

  1. 有沒有空任何<div class="nav-previous">
  2. 有沒有空任何<div class="nav-next">

如果您有多個nav-previous和nav-next,那麼這可能看起來不同,但似乎並非如此。

+0

謝謝jbrookover。我按照你的建議添加了長度,並且按照我的需要工作。你的回答幫助我理解了很多。再次感謝! – madameFerry 2011-04-07 15:05:22

0

我解決它做一些更多的調查:這裏是工作

if (jQuery('.nav-previous').is(':empty') && jQuery('.nav-next').is(':empty'))  
    { 
     jQuery('div#nav-below').addClass('noBorder');  
    }; 

注意代碼:空的選擇只有在有的div內沒有BRS或空格的作品。

相關問題