我需要检查DOM中是否有任何空的fieldset。空的意思是它里面没有文本(legend不在内)。例如,这是一个空的fieldset:
<fieldset>
<legend>a1</legend>
<input type="hidden" name="x" value="y">
</fieldset>
除了在 legend 元素内部,其他地方都没有文本节点。
到目前为止,我一直使用这个 JQuery 来检查这个条件:
if ($(this).find(":not(legend)").text().trim() == '') {
...
}
注意,这是从.each()方法调用中获取的。问题在于,我发现它不能在像这样嵌套的fieldset上正常工作:
<fieldset>
<legend>a</legend>
<fieldset>
<legend>a1</legend>
</fieldset>
<fieldset>
<legend>a2</legend>
</fieldset>
</fieldset>
在这种情况下,jQuery表达式为:
$("fieldset").find(":not(legend)").text().trim()
作为结果返回 "a1 a2"。问题出在哪里呢?JsFiddle