2013-10-02 14 views
6

document.getElementById in JavaScript restituisce un elemento DOM dal vivo? Sono interessato a conoscere il motivo della prestazionedocument.getElementById restituisce un elemento live dom?

+2

Cosa considereresti un elemento DOM "live" e come sarebbe un elemento DOM "non live"? – adeneo

+0

elementList = document.querySelectorAll (selettori); elementList è un NodeList non attivo degli oggetti elemento. – GibboK

+0

Puoi dare un esempio di cosa fa un elemento live? – tymeJV

risposta

12

La distinzione tra standard e "live" viene solitamente utilizzata per gli elenchi . document.getElementById restituisce un riferimento a un oggetto singolo a un nodo DOM. Una volta acquisito il nodo, il riferimento punta sempre sullo stesso nodo.

HTML per l'esempio:
<div id="foo"></div> 
JS per l'esempio:
var foo, 
    bar; 
foo = document.getElementById('foo'); //gets the div 
bar = document.getElementById('bar'); //null 
foo.setAttribute('id', 'bar'); 
console.log(foo.id); //'bar' 
console.log(bar.id); //TypeError 

I riferimenti non vengono aggiornati solo perché il ID dell'elemento potrebbe avere cambiato.

Ciò è in contrasto con qualcosa come document.getElementsByTagName che restituisce un elenco di elementi con il tag specificato. L'elenco si aggiornerà automaticamente quando gli elementi vengono aggiunti o rimossi dal DOM.

Problemi correlati