我需要确定哪个元素在我的标记中排在第一位,例如input
或select
。例如
<body>
<input type="text" />
<select><option>Test</option></select>
<body>
在这种情况下,input
在DOM中排在第一位,而
<body>
<select><option>Test</option></select>
<input type="text" />
<body>
在这种情况下,select
排在第一位。用jQuery做任何方法吗?感谢
编辑:只是为了澄清,我不想要第一个元素,我只想知道输入和选择元素之间是否是第一个。 select
和input
元素之前可能还有其他元素。
答案 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"
或者要获得第一个输入类型,您可以这样做:
$(":input:first")
例如:
alert($(":input:first")[0].nodeName); //alerts "INPUT"