Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/480.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么$(':不(:has(*))。查找(“p”);不会给出输出_Javascript_Jquery_Jquery Selectors - Fatal编程技术网

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(*))')