jQuery第一个类型选择器?

Web*_*ner 27 javascript jquery jquery-selectors

我如何用jQuery 选择下面的第一个<p>元素<div>

<div>
    <h1>heading</h1>
    <p>How do I select this element with jQuery?</p>
    <p>Another paragraph</p>
</div>
Run Code Online (Sandbox Code Playgroud)

Jam*_*ice 57

假设您已经引用了div已经:

$(yourDiv).find("p").eq(0);
Run Code Online (Sandbox Code Playgroud)

如果第一个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)`
Run Code Online (Sandbox Code Playgroud)

请注意,该eq方法始终是执行此操作的最快方法.这里有一个结果快速比较的的eq方法,:eq选择和:first选择(我没有打扰first的方法,因为它只是一个别名eq(0)):

在此输入图像描述

  • @rkw - 可能值得注意的是:`first-of-type`等*只能在支持`querySelectorAll`*的浏览器中使用.较旧的浏览器(特别是IE8及以下版本)会抛出错误,因此最好坚持使用`eq`. (3认同)

rkw*_*rkw 5

$('div p:first')
Run Code Online (Sandbox Code Playgroud)

如果没有这个无用的句子,答案太短了.

编辑 这绝对是一个缓慢的选择.在查看Jame的速度测试之后,看起来jQuery选择器在从css选择器中退回时效果最佳.