如何使用jQuery选择以下<p>
中的第一个<div>
元素?
<div>
<h1>heading</h1>
<p>How do I select this element with jQuery?</p>
<p>Another paragraph</p>
</div>
答案 0 :(得分:55)
假设您已经引用了div
:
$(yourDiv).find("p").eq(0);
如果第一个p
始终是div
的直接孩子,则可以使用children
代替find
。
一些替代方案包括:
$(yourDiv).find("p:eq(0)"); //Slower than the `.eq` method
$(yourDiv).find("p:first");
$(yourDiv).find("p").first() //Just an alias for `.eq(0)`
请注意,eq
方法始终是执行此操作的最快方法。以下是eq
方法的quick comparison,:eq
选择器和:first
选择器的结果(我没有使用first
方法,因为它只是一个别名为eq(0)
):
答案 1 :(得分:6)
$('div p:first')
如果没有这个无用的句子,答案太短了。
修改强> 这绝对是一个缓慢的选择。在查看了Jame的速度测试之后,看起来jQuery选择器在从css选择器中退回时效果最好。
答案 2 :(得分:2)
$(“div p”)。first();
或$('div p:first');
参考:http://api.jquery.com/first/
请记住,first()只匹配一个元素,:first-child选择器可以匹配多个:每个父元素一个。
答案 3 :(得分:1)
你几乎知道答案(来自你的帖子标题)。 jQuery中有一个名为:first-of-type
的选择器。用它来自动查找和添加类到第一个p标签,如下所示:
$("div p:first-of-type").addClass('someClass');
答案 4 :(得分:0)
$('div p').first()
应该有效。我想。
答案 5 :(得分:-1)
这应该有效
$( "div p:first-of-type" ).css( "font-size: 10px" );
以上代码在@Denver指向的div中找到第一段,并将其fonts-size
更改为10px
以下示例更详细地介绍了jQuery first-of-type selector