我想选择没有子元素的元素。这是因为我想选择一个非常复杂的网站中的所有文本。
我这样做:
$mainSection.filter(":not(:has(*))");
但是也有一些特殊情况,例如:
<p>Some interesting text <wbr></wbr> that has an "optional word break" tag in it</p>
在这种情况下,我想选择 p,即使其中有子元素。但只要子元素是 wbr 标签。
最佳答案
您可以在:has()
内使用另一个:not()
来排除某些子元素:
$mainSection.filter(":not(:has(:not(wbr)))");
顺便说一句,如果外部 :not()
是 .filter()
选择器字符串的唯一部分,您只需交换 .filter()
替换为 .not()
以使代码不那么困惑:
$mainSection.not(":has(:not(wbr))");
这两个语句在英语中的含义相同:从集合 $mainSection
中排除具有非 wbr
的任何子元素的元素。
关于javascript - 仅选择没有子元素的元素,除了子元素是 <wbr></wbr> 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24404685/