jQuery addClass 到每个有 x 个子项的项目?
我想为每个有 2 个以上子项的项目添加“anything”类。 不幸的是我的代码不起作用,我想我必须定义(这个)并且可能使用每个,但我不知道如何做到这一点。
这是我的代码:
if ( jQuery('#container .document').children().size() > 2 ) {
jQuery(this).addClass("anything");
}
一个损坏的示例:
I want to add class "anything" to every item that has more than 2 children.
Unfortunately my code doesn't work, I guess I have to define (this) and maybe use each, but I'm not sure how to do that.
Here's my code:
if ( jQuery('#container .document').children().size() > 2 ) {
jQuery(this).addClass("anything");
}
An broken example:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以使用 filter 将列表限制为具有两个以上子元素的元素。
JSFiddle: http://jsfiddle.net/HHSuM/4/
You can use filter to restrict the list to elements with more than two children.
JSFiddle: http://jsfiddle.net/HHSuM/4/
使用
.each()
循环元素:Loop over the elements with
.each()
:我认为这是一个有趣的问题,并尝试将
:has()
与:nth-child()
结合使用,但出现语法错误。但是稍微修改一下方法就可以了:
基本上我们正在寻找具有第三个元素的元素,然后在 DOM 中向上移动。
I thought this was an interesting one, and tried to use
:has()
in conjunction with:nth-child()
but I get a syntax error.But modifying the approach slightly, works:
Basically we're looking for elements with a 3rd element, then moving up the DOM.
使用
.each()
迭代#container 。文档
元素。更新了您的 jsfiddle。似乎有效!
Use
.each()
to iterate through the#container .document
elements.Updated your jsfiddle. Seems to work!
这里有很多选项
您可以使用 .each() 迭代项目,检查回调函数是否有 2 个或更多子项,然后添加类
我更喜欢的另一个选项是使用 .filter() ,如下所示:
或您的示例:http://jsfiddle.net/saelfaer/HHSuM/6/
you have many options here
you can use .each() to iterate over the items, check in the callback function whether they have 2 children or more and then add the class
another option i like better, is using the .filter() like this:
or your example: http://jsfiddle.net/saelfaer/HHSuM/6/