确定哪个元素在HTML / DOM中排在第一位?

时间:2010-08-25 23:43:08

标签: jquery

我需要确定哪个元素在我的标记中排在第一位,例如inputselect。例如

<body>
    <input type="text" />
    <select><option>Test</option></select>
<body>

在这种情况下,input在DOM中排在第一位,而

<body>
    <select><option>Test</option></select>
    <input type="text" />
<body>

在这种情况下,select排在第一位。用jQuery做任何方法吗?感谢

编辑:只是为了澄清,我不想要第一个元素,我只想知道输入和选择元素之间是否是第一个。 selectinput元素之前可能还有其他元素。

3 个答案:

答案 0 :(得分:3)

使用index。 如果$('select:first').index() < $('input:first').index()select是第一个

请在此处查看示例:http://jsfiddle.net/ZLmMB/

答案 1 :(得分:3)

如果您只是想知道整个文档中哪个首先出现,您可以这样做:

尝试一下: http://jsfiddle.net/85zUZ/ 更改订单,然后点击顶部的“运行”。

var theFirst = $('input,select').first()[0].tagName;

alert( theFirst );

jQuery按照它们在DOM中出现的顺序返回元素,因此.first()将按照出现的顺序抓取第一个元素。

答案 2 :(得分:2)

如果您想要<body>中的非常第一个元素,可以像这样使用:first-child

$("body > :first-child")

例如你的第一个例子:

alert($("body > :first-child")[0].nodeName);​ //alerts "INPUT"

You can give it a try here


或者要获得第一个输入类型,您可以这样做:

$(":input:first")

例如:

alert($(":input:first")[0].nodeName);​ //alerts "INPUT"

You can try that version here