我试图找出一个子类的确切数量,然后将一个类添加到另一个匹配该类的元素中,在这个例子中,父元素(它不会是我试图实现的直接父元素)。
$(".test").each(function(index, elem) {
var countchild = $(this).find(".child");
if (countchild.length > 4) {
$(".test").addClass("four")
} else {}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test">
<div class="child">1</div>
<div class="child">2</div>
<div class="child">3</div>
<div class="child">4</div>
</div>
发布于 2017-03-30 09:03:26
要实现这一点,您可以将适当的类名存储在数组中。然后,您可以根据找到的子类的数量来访问正确的类,如下所示:
var classArr = ['foo', 'bar', 'fizz', 'buzz'];
$(".test").each(function(index, elem) {
$(this).addClass(classArr[$(this).find('.child').length - 1]);
});
.bar { color: #0C0; }
.buzz { color: #C00; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test">
<div class="child">1</div>
<div class="child">2</div>
<div class="child">3</div>
<div class="child">4</div>
</div>
<div class="test">
<div class="child">1</div>
<div class="child">2</div>
</div>
发布于 2017-03-30 08:57:49
试试这个:
$('.test').find('.child').length;
在子计数的基础上,可以添加如下类:
var arr = ['zero', 'one', 'two', 'three', 'four'];
var count = $('.test').find('.child').length;
$('.test').addClass('one');
发布于 2017-03-30 09:07:33
你为什么不试试这个:
var countchild = $(".test > .child");
if (countchild.length > 4) {
$(".test").addClass("four")
} else {
}
FYI
.test > .child
将只选择直接测试的子元素(也就是说,其中没有其他元素)。
.test .child
将选择任何在测试中的子元素,即使它们之间还有其他元素。
https://stackoverflow.com/questions/43112986
复制相似问题