如果长度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为此,
如果长度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为此,
尝试:
$("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");
});
$(function() {
if ($("div.classname > ul li").length > 3)
{
$("div.classname").removeClass().addClass('anotherclass');
}
else if (...)
{
// add another class
}
});
它可以用一个电话,没有条件语句
$('ul li:nth-child(4)')
.closest('div')
.removeClass('content')
.addClass('scroll-content');
这里假设你的默认类是“内容”如你所说来完成。
此调用查找至少有4个子元素(即多于3个)的任何ul,然后找到最接近的父元素,并删除默认类并添加滚动内容类。
第二种解决方案很好 – 2009-11-17 06:08:04