繁体   English   中英

jQuery用于选择具有特定直接子项的标签

[英]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;});

jsFiddle演示

编辑:修改了演示,以包括有效的HTML(取代<div><span>第二内侧<p>

$( 'P:有(一)')

会做的。

http://jsfiddle.net/xKc8T/

更新

font标记的问题可以修复如下:

$('a').parent('p')

http://jsfiddle.net/xKc8T/1/

更新2

好吧废弃所有这些。 根据评论:has()过滤器不只是看直接子项。 因此,如何我们走另一条路,选择所有a标签,然后选择那些母公司如果母公司是p

 $('a').parent('p') 

或避免选择所有的a标签,你可以做

$('p:has(> a)')

http://jsfiddle.net/xKc8T/3/

又一次更新

感谢@BoltClock提出这个建议。 以下语法也有效:

 $('p:has(> a)') 

http://jsfiddle.net/xKc8T/4/

它很简单:

 $("div p:first-child") 

您可能要考虑申请一个idclassdiv的DOM遍历限制为仅相关divp块。

这个答案或多或少都是一样的 ,只是寻找最后一个孩子。

更新对不起,误读了'第一个p标签'位。

尝试这个:

 $("div p:has(a)") 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM