如何根据内容更改div类?

时间:2009-11-17 04:43:40

标签: javascript jquery html css

如果长度LI大于3,我想更改div的类,如果小于3,那么类名应该是默认值,如“ content ”,如果超过3则班级名称应为“滚动内容

    <div class="classname">

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

我更喜欢使用jQuery,

3 个答案:

答案 0 :(得分: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");
});

答案 1 :(得分:0)

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

答案 2 :(得分:0)

可以通过一次通话完成,也可以没有条件

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

这假设你的默认课程是你建议的'内容'。

此调用查找任何至少有4个子节点(即超过3个)的ul,然后找到最接近父节点的div,并删除默认类并添加scroll-content类。