Javascript 为什么$(':不(:has(*))。查找(“p”);不会给出输出
我想获得文本的父节点,我知道这不容易实现,应该通过手动遍历来完成。但我想知道为什么下面的方法不起作用Javascript 为什么$(':不(:has(*))。查找(“p”);不会给出输出,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我想获得文本的父节点,我知道这不容易实现,应该通过手动遍历来完成。但我想知道为什么下面的方法不起作用 $(':not(:has(*))').find(':contains("mytext")'); 我只需要在结果中查找p标签就可以轻松地完成。 我知道$':不:有*;将返回一些P标签 .findp;应该选择那些P标签 我知道它不起作用,但我想知道为什么?您正在尝试查找没有后代的元素的后代元素。那是行不通的 如果要查找没有子体的p元素,则可能打算使用.filter,而不是.find: 或者,您可以
$(':not(:has(*))').find(':contains("mytext")');
我只需要在结果中查找p标签就可以轻松地完成。
我知道$':不:有*;将返回一些P标签
.findp;应该选择那些P标签
我知道它不起作用,但我想知道为什么?您正在尝试查找没有后代的元素的后代元素。那是行不通的 如果要查找没有子体的p元素,则可能打算使用.filter,而不是.find: 或者,您可以将p选择器附加到:not-这里没有理由运行单独的选择器,除非您的选择器字符串来自变量或其他内容:
$('p:not(:has(*))')
从逻辑上看。。。找到所有,不包含,包含一切,在其中找到p。这没有任何意义。基本上我的理解是只检查标记内的标记,并包含标记内文本的检查。因此,获取所有不在mand中的标记可能包含一个paintext;谢谢你的澄清。我不知道find会查找标签中的项目
$('p:not(:has(*))')