Ritengo che questo dovrebbe essere un problema facile, ma purtroppo mi trovo bloccato. Quello che sto cercando di fare è impostare un modo in modo che ogni volta che si fa clic su una cella su una tabella (o ovunque), viene visualizzato il parentNode di ogni elemento, essenzialmente attraversando l'albero DOM. Ho pensato che avrei bisogno di usare elem.parentNode, ma sono bloccato sulla parte di attraversamento. Qualsiasi guru là fuori che può darmi una mano, sarebbe molto apprezzato.Attraversare l'albero DOM per visualizzare le informazioni sul parentNode
risposta
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;
}
};
}
Se si vuole veramente clic su qualsiasi elemento in tutto il mondo, quindi è sufficiente:
document.body.onclick = function(evt){
if (!evt) evt = window.event;
var element = evt.target || evt.srcElement;
while (element){
console.log(element);
element = element.parentNode;
}
};
ho pensato fino ad oggi che le proprietà di evento come '' currentTarget' e target' non erano disponibili in IE . Sembra che abbiano cugini in IE, come con altre proprietà. Grazie per l'intuizione. –
+1 e buon lavoro al raggiungimento di 10k – qwertymk
'getElementsByTagName' restituisce un oggetto non un array quindi è necessario utilizzare' Array.prototype.method.call' o [creare un array falso] (http://stackoverflow.com/ questions/4513162/document-getelementsbytagname-return-value) per iterarlo correttamente. – rxgx
- 1. Componente per visualizzare le informazioni del registro in Delphi
- 2. quando DataContractJsonSerializer include le informazioni sul tipo?
- 3. Quando utilizzare le informazioni sul tipo di runtime?
- 4. genitore vs parentNode
- 5. Le informazioni sul firmatario non corrispondono
- 6. Serve aiuto Informazioni sul metodo productAttribute() per le pagine prodotto
- 7. Ottenere ServiceStack per conservare le informazioni sul tipo
- 8. Come aggiornare le informazioni sul fuso orario per OpenJDK?
- 9. Come visualizzare le informazioni del file PFX in modo visivo?
- 10. Intercetta telefonate per visualizzare informazioni di contatto
- 11. basata sul cambio dom
- 12. DOM Javascript, ottieni il testo del nodo senza perdere le informazioni sulla spaziatura
- 13. Impossibile trovare informazioni sul provider per com.google.plus.platform
- 14. Modifica delle informazioni dell'intestazione http per nascondere le informazioni sul server
- 15. parentNode è nullo con MutationObserver.observe (document.body
- 16. cURL: come visualizzare le informazioni di avanzamento durante il caricamento?
- 17. informazioni sul codice ide
- 18. Informazioni sul codice
- 19. Informazioni sul protocollo Bittorrent
- 20. Come visualizzare le informazioni all'interno di modal dall'URL?
- 21. Informazioni sul brufolo
- 22. Come visualizzare le informazioni del fornitore del mio NIC?
- 23. Impossibile trovare informazioni sul provider per "ContentProvider"
- 24. Informazioni sul motivo dell'adattatore
- 25. API WebKit per DOM
- 26. Come attraversare un dacpac
- 27. Leggi informazioni sul dock OSX?
- 28. Come visualizzare le informazioni di data e ora localizzate per gli utenti Web con ASP.NET
- 29. Tentativo di visualizzare le informazioni sulla versione del pacchetto in un messaggio "Informazioni"
- 30. Informazioni sul segreto in avanti
Grazie per l'aiuto. Domanda veloce però, perché usare element.parentNode al posto dell'elemento? – NinjaCode
Ogni elemento in DOM ha il suo 'parentNode' - escluso il nodo radice, che è' Document'. Quindi esegui l'iterazione dell'elemento tanto a lungo, dato che l'elemento ha un 'parentNode'. Nel corpo di 'while si assegnano gli elementi correnti' parentNode' alla variabile di elemento, quindi potrebbe essere eseguito fino a quando non raggiungerà 'Documento' che non ha' parentNode'. – singles