2013-04-16 16 views
5

Mam jakiś element w ciele. Chcę wiedzieć, jak ich indeksowanie indeksowanie div powinny być 1, a rozpiętość jego indeksowanie powinno być 2. Jak zacząć znaleźćJak uzyskać indeksowanie elementów za pomocą javascript

$(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> 
+0

Czy "i + 1" nie jest numerem, którego szukasz? – Dogbert

+0

powinien zaczynać się od "0" – Carlos

+0

'' powinno być '0'? – Dogbert

Odpowiedz

2

Można to zrobić bardzo łatwo w jQuery (widzę, że używasz go), za pomocą tego kodu:

$(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 przykład tutaj: http://jsfiddle.net/u7kWF/

Czysty przykład 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/

+0

możesz to zrobić za pomocą javascript – Carlos

+0

Masz bibliotekę jQuery, ponieważ używasz $ (function() {, ale zrobię to również w zwykłym JS –

+0

Zaktualizowany czystym JS –

1

Spróbuj jak poniżej, to pomoże Ci ...

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) 
}}) 
Powiązane problemy