2009-11-17 140 views
1

如果長度LI大於3,我想改變div的類別,如果小於3,那麼類別名稱應該是默認的,如「content」,如果超過3,那麼類別名稱應該是「滾動內容如何根據內容更改div類?

<div class="classname"> 

<ul> 
<li>Content</li> 
    <li>Content</li> 
    <li>Content</li> 
    <li>Content</li> 
</ul> 
    </div> 

我更喜歡使用jQuery爲此,

回答

3

嘗試:

$("ul").each(function() { 
    $(this).parents("div.classname:first") 
    .addClass($(this).children().length > 3 ? "scroll-content" : "content"); 
}); 

或也許是這樣的:

$("div.classname").each(function() { 
    $(this).addClass($(this).find("ul").children().length > 3 ? "scroll-content" : "content"); 
}); 
+0

第二種解決方案很好 – 2009-11-17 06:08:04

0
$(function() { 
    if ($("div.classname > ul li").length > 3) 
    { 
     $("div.classname").removeClass().addClass('anotherclass'); 
    } 
    else if (...) 
    { 
     // add another class 
    } 
}); 
0

它可以用一個電話,沒有條件語句

$('ul li:nth-child(4)') 
    .closest('div') 
    .removeClass('content') 
    .addClass('scroll-content'); 

這裏假設你的默認類是「內容」如你所說來完成。

此調用查找至少有4個子元素(即多於3個)的任何ul,然後找到最接近的父元素,並刪除默認類並添加滾動內容類。