Creo que esto debería ser un problema fácil, pero por desgracia me encuentro atascado. Lo que estoy tratando de hacer es configurar una forma para que cada vez que haga clic en una celda en una tabla (o en cualquier otro lugar), se muestre el parentNode de cada elemento, básicamente atravesando el árbol DOM. Pensé que necesitaría usar elem.parentNode, pero estoy atrapado en la parte transversal. Cualquier gurú por ahí que pueda ayudarme, sería muy apreciado.Recorriendo el árbol DOM para mostrar información sobre el parentNode
Respuesta
var element; //your clicked element
while(element.parentNode) {
//display, log or do what you want with element
element = element.parentNode;
}
var tables = document.getElementsByTagName('table');
for (var i=0,len=tables.length;i<len;++i){
tables[i].onclick = function(evt){
if (!evt) evt = window.event;
var element = evt.target || evt.srcElement;
while (element){
console.log(element);
element = element.parentNode;
}
};
}
Si realmente quiere hacer clic en cualquier elemento en todas partes, entonces simplemente:
document.body.onclick = function(evt){
if (!evt) evt = window.event;
var element = evt.target || evt.srcElement;
while (element){
console.log(element);
element = element.parentNode;
}
};
pensé hasta hoy que las propiedades de evento como '' currentTarget' y target' no estaban disponibles en el IE . Parece que solo tienen primos en IE, como con varias otras propiedades. Gracias por la visión. –
+1 y un buen trabajo al llegar a 10k – qwertymk
'getElementsByTagName' devuelve un objeto, no una matriz, por lo que necesitará usar' Array.prototype.method.call' o [crear una matriz falsa] (http://stackoverflow.com/ questions/4513162/document-getelementsbytagname-return-value) para iterarlo correctamente. – rxgx
- 1. Mostrar información sobre herramientas en el mouse sobre un texto
- 2. ¿cómo puedo mostrar información sobre herramientas o información sobre el elemento al pasar el mouse?
- 3. Diferencia entre DOM parentNode y parentElement
- 4. Cómo mostrar información sobre herramientas en el gráfico circular jqplot
- 5. ¿Cómo obtener información sobre herramientas para mostrar cuando se usa el mouse sobre ToolStripStatusLabel?
- 6. Obteniendo el árbol DOM del documento XML
- 7. Mostrar información sobre herramientas sobre un control deshabilitado
- 8. Mostrar información sobre herramientas para series invisibles en Highcharts
- 9. Mostrar información sobre herramientas para un botón cuando el texto es demasiado largo
- 10. Mostrar información sobre herramientas con el huso horario correcto con el plugin de FlQ jQuery
- 11. información sobre herramientas para Button
- 12. Información sobre herramientas para QPushButton
- 13. Mostrar WPF Información sobre la herramienta si es necesario
- 14. Lectura de archivos HTML en el árbol DOM utilizando Java
- 15. ¿Cómo mantengo el árbol "Elementos" (DOM) abierto en Webkit Inspector?
- 16. Cómo mostrar información sobre herramientas en MS Chart
- 17. padres vs parentNode
- 18. Buscar información sobre el modelo de iPhone
- 19. JavaScript - obtener información detallada sobre el navegador
- 20. Página para obtener información sobre el navegador y la conexión
- 21. Programar mostrar información sobre herramientas después de una llamada ajax
- 22. Mostrar una información sobre herramientas en un ToolStripItem no enfocado
- 23. Cómo mostrar una información sobre herramientas de .NET Balloon?
- 24. Atajo de teclado VS2010 - Mostrar información sobre herramientas
- 25. cómo mostrar una información sobre herramientas en un control deshabilitado?
- 26. información sobre herramientas para navegadores móviles
- 27. C# Mostrar una información sobre herramientas en el cuadro de texto deshabilitado (Formulario)
- 28. wpf - validación - cómo mostrar información sobre herramientas y desactivar el botón "ejecutar"
- 29. Yii, mostrar información sobre herramientas en el valor de cgridview (tabla)
- 30. ¿Puedo explicity mostrar información sobre herramientas en el evento Mouse Click en WPF?
Gracias por la ayuda. Pregunta rápida, ¿por qué usar element.parentNode en lugar de element? – NinjaCode
Cada elemento en DOM tiene su 'parentNode' - excluyendo el nodo raíz, que es' Document'. Entonces iteras sobre el elemento por tanto tiempo, ya que el elemento tiene un 'parentNode'. En el cuerpo 'while' usted asigna los elementos actuales' parentNode' a la variable del elemento, por lo que podría ejecutarse una y otra vez hasta que llegue a 'Document' que no tiene' parentNode'. – singles