这是我的,但似乎不起作用..
$('.parent-class:visible .my-class[state!="done"]')
我想选择其
.my-class
元素可见的所有 .parent-class
元素。
编辑1:这个选择器是正确的。代码中的其他地方肯定存在错误。所以这个问题已经不再重要了。
编辑2:真正的问题是我的父类附加了内联样式“display:inline”,显然可见选择器不喜欢display:inline。我把它拿出来后,它就开始工作了。
编辑3:未设置高度的内联元素。 jQuery 说任何高度为零的东西都被认为是不可见的,我想我的高度未知的元素默认为零。
你的选择器应该可以工作,而且它确实可以工作。在你的小提琴中,你没有包含 jQuery 库,所以它在那里不起作用!请参阅此更新的小提琴。
如果你将 jsfiddle 中的框架更改为 jquery 而不是 mootools,它就可以工作了
您拥有了它,因此父级的所有后代都被选中。 space 是“祖先运算符”。
如果您只想要直接子级,请使用 > 运算符:
.parent-class:visible > .my-class[state!="done"]'
尝试
$(".parent-class:visible").children(".my-class[state!='done']").html("i am gone");