我正在尝试找到ul的id,它在下面的代码中没有任何li元素:
if ( $("#myDiv ul.myClass > li").length < 1 ){
alert($(this).attr("id"));
}
我也看到了this article,但它使用了.each()函数。 我希望在不使用任何循环的情况下实现此目的。这可能吗?
在上面的JSFiddle中,我无法获取空UL元素的ID。 它警告它未定义。
有谁能请让我知道我在这里做错了什么?
答案 0 :(得分:2)
在你发布的jsFiddle中你有一个糟糕的选择器来启动。您希望.myClass
位于UL
之前。
如果你解决了这个问题,那么你所要做的就是:
alert($("#myDiv > .myClass > ul:empty").prop('id'));
选择器的简单派生也可以起作用:
#myDiv .myClass ul:empty
- 没有立即继承.myClass ul:empty
- 任何ul:empty的实例,它是.myClass #myDiv ul:empty
- myClass中的所有空ul 答案 1 :(得分:1)
您可以使用:empty
选择器进行检查:
alert($("#myDiv ul:empty").attr("id"));
但如果不止一个,这将只返回第一个匹配的ID。
编辑:您的HTML在jsFiddle中无效。李不能是DIV的直接孩子。