如何使用JavaScript获取元素的索引

5

我在网页的body中有一些元素,想知道它们的索引位置,比如div的索引应该是1,span的索引应该是2。如何开始查找呢?

$(function(){
var id= document.getElementsByTagName('*');
for(i=0; i<id.length;i++){
alert(id[i])
}})

<body>
<div></div>
<span></span>
<p></p>
<strong></strong>
</body>

“i + 1” 不就是你要找的那个数字吗? - Dogbert
it should start with '0' - Jitender
<body> 应该是 0 吗? - Dogbert
2个回答

2
您可以很容易地使用jQuery(我可以看到您正在使用它)来完成此操作,只需要使用以下代码:
$(function(){
   $.each($('body *'), function(i, v) { // All elements within the <body> tag
      var index = (i + 1); // zero-based index, so plus 1.
      console.log(index);
   });
})

这里有一个jsFiddle示例:http://jsfiddle.net/u7kWF/

纯JS示例:

var id = document.body.getElementsByTagName('*'); // Get all tags within <body>
for(i=0; i<id.length;i++){
     console.log(id[i]); // The tag - <div>, <span>, <p>, <strong>
     console.log(i + 1); // The index - 1,2,3,4
}

jsFiddle: http://jsfiddle.net/u7kWF/1/


请问您可不可以使用 JavaScript 来完成这个任务? - Jitender
你已经拥有了 jQuery 库,因为你在使用 $(function(){,但我也可以用普通的 JS 来实现。 - Chris Dixon

1

尝试像下面这样,它会帮助你...

Fiddle : http://jsfiddle.net/RYh7U/136/

HTML:

<body>
<div></div>
<span></span>
<p></p>
<strong></strong>
</body>

Javascript:

$(function(){
var id= document.body.getElementsByTagName("*");;
for(i=0; i<id.length;i++){
    alert(" Tagname : " + id[i].tagName + "  Index : " + i)
}})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接