[英]jQuery for selecting tags that have a certain immediate child
如何使用jQuery选择至少有一个标签作为直接子项的所有p标签?
对于文件:
<div>
<p><a>My Link</a></p>
<p><div><a>My nested Link</a></div></p>
</div>
它只返回第一个p标签。
我想你可能不得不使用.filter()
来做这件事。 以下代码应该满足您的需求:
$('p').filter(function() { return $(this).children('a').length > 0;});
编辑:修改了演示,以包括有效的HTML(取代<div>
与<span>
第二内侧<p>
$( 'P:有(一)')
会做的。
更新
font
标记的问题可以修复如下:
$('a').parent('p')
更新2
好吧废弃所有这些。 根据评论:has()
过滤器不只是看直接子项。 因此,如何我们走另一条路,选择所有a
标签,然后选择那些母公司如果母公司是p
。
$('a').parent('p')
或避免选择所有的a
标签,你可以做
$('p:has(> a)')
又一次更新
感谢@BoltClock提出这个建议。 以下语法也有效:
$('p:has(> a)')
它很简单:
$("div p:first-child")
您可能要考虑申请一个 id
或class
的div
的DOM遍历限制为仅相关div
和p
块。
这个答案或多或少都是一样的 ,只是寻找最后一个孩子。
更新对不起,误读了'第一个p标签'位。
尝试这个:
$("div p:has(a)")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.