我想获得文本的父节点,我知道这不容易实现,应该通过手动遍历来完成。但我想知道为什么以下不起作用。
$(':not(:has(*))').find(':contains("mytext")');
只需在结果中查找p标签,我就更容易了。
我知道$(':not(:has(*))');
会返回一些P标签
.find("p");
应该选择那些P标记
我知道它不起作用,但我想知道为什么?
答案 0 :(得分:1)
您正在尝试查找没有后代的元素的后代元素。那不行。
如果您正在寻找没有后代的p
元素,您可能需要使用.filter()
,而不是.find()
:
$(':not(:has(*))').filter('p')
或者您可以将p
选择器附加到:not()
- 这里没有理由运行单独的选择器(除非您的选择器字符串来自变量或其他内容):
$('p:not(:has(*))')