¿Cómo puedo obtener el número de posición de un elemento?

¿Hay algún complemento en firefox o función en firebug o algo más, que me permita ver el número de posición de un elemento específico?

Si, por ejemplo, quiero saber qué posición tiene un elemento TD específico en comparación con todos los TD del documento.

EJEMPLO:

    (0)  (1)  (2)  (3)  (And so on...)  <------ WHAT IS THE POSITION NUMBER OF THIS TD? 

Ejemplo

La barra de herramientas del desarrollador web en firefox tiene una herramienta que le permite ver el número de índice de todos los DIV. Esto es lo que necesito, pero para otros elementos, no solo DIV. Barra de herramientas del desarrollador web

PD. Me inspiré en la respuesta correcta e hice mi propia solución:

 var dom = document.getElementsByTagName('td'); var x; for(x = 0; x < dom.length; x++) { dom[x].innerHTML = dom[x].nodeName + '[' + x + '] ' + '(' + dom[x].innerHTML + ')'; dom[x].style.color = 'blue'; } 

Bueno, lo siguiente hará lo que necesites:

 $('li').each( function(i) { $(this).text('list element ' + i); }); function indexAmongSiblings(elem) { if (!elem) { return false; } var that = elem; var parent = that.parentNode; var siblings = parent.childNodes; var elemSiblings = []; for (var s = 0, numberOf = siblings.length; s < numberOf; s++) { if (siblings[s].nodeName != '#text' && siblings[s].tagName != undefined) { elemSiblings.push(siblings[s]); } } for (var e=0,l=elemSiblings.length; e 

Demostración de JS Fiddle .


Edite lo anterior para mostrar cómo asignar el índice del elemento, entre sus hermanos, a una variable:

 $('li').each( function(i) { $(this).text('list element ' + i); }); function indexAmongSiblings(elem) { if (!elem) { return false; } var that = elem; var parent = that.parentNode; var siblings = parent.childNodes; var elemSiblings = []; for (var s = 0, numberOf = siblings.length; s < numberOf; s++) { if (siblings[s].nodeName != '#text' && siblings[s].tagName != undefined) { elemSiblings.push(siblings[s]); } } for (var e=0,l=elemSiblings.length; e 

Editado en respuesta a los comentarios dejados en otras respuestas, por OP:

Quiero la posición de número / secuencia de un elemento específico (por ejemplo,) en comparación con elementos iguales (por ejemplo) en todo el DOM.

Cita

La siguiente función obtendrá, y devolverá, la posición de índice del elemento en el que se hizo clic entre otras tags del mismo tipo en el documento (que en realidad es algo más fácil que la anterior):

 function indexAmongSameTags(elem) { if (!elem || !elem.tagName) { return false; } var thisIs = elem.tagName.toLowerCase(), sameAs = document.getElementsByTagName(thisIs); for (var i=0,len=sameAs.length; i 

Demostración de JS Fiddle .

Referencias:

  • childNodes .
  • e.preventDefault() .
  • e.stopPropagation() .
  • getElementsByTagName() .
  • parentNode .
  • push() .

Árbol de dom. Cada elemento tiene un número si intentas obtenerlo por su XPath.

EDITAR

Lo siento, he entendido mal su pregunta. Aquí está la respuesta entonces:

  1. Abre tu firebug
  2. Seleccione su elemento con la herramienta de inspección
  3. Una vez que haya hecho clic, uno en el lado derecho, haga clic en el enlace dom
  4. Ver el índice de celdas allí.

Me gusta esto:

introduzca la descripción de la imagen aquí


Con javascript puedes obtener los números de tds.

 var tds = document.getElementsByTagName('td'); // this will return every td in the document. if (console && console.log) console.log(tds.length); else alert(tds.length); 

El ejemplo anterior imprimirá el número totoal de elementos td en su documento. Sin embargo, si desea un td particular, debe darle a ese td un identificador. Por ejemplo, supongamos que su archivo html es como:

 ...  ... 

Ahora con javascript puedes:

 var td = document.getElementById('your_td'); // this will return the td // if you want its position you can: var tds = document.getElementsByTagName('td'); for (var i = 0; i < tds.length; i++) { if (tds[i] === td) alert(i); } 

Este ejemplo le dará la posición de su td.