Così sto imparando a manipolare il DOM e ho notato una cosa interessante:Javascript: setAttribute() v.s. element.attribute = valore da impostare attributo "nome"
Diciamo che voglio impostare l'attributo name
di un elemento utilizzando la". " dot notation:
element.name = "someName";
console.log(document.getElementsByName("someName")[0]); // returns "undefined"??
Tuttavia, se io uso il metodo document.setAttribute()
, funziona benissimo:
element.setAttribute("name", "someName");
console.log(document.getElementsByName("someName")[0]); // returns the element like it should.
Non certo perché il metodo di notazione non funziona nel primo caso.
Perché succede?
Generalmente prova a evitare l'uso di 'getElementsByName' – zzzzBov
Perché dovresti evitare di usare getElementsByName? –
Gli attributi sono accessibili usando la notazione a punti se è così che desideri accedervi. Se si desidera accedere agli attributi utilizzando la notazione dot, è necessario fare riferimento a obj.attributes.attributeName per recuperare l'attributo e obj.attributes.attributeName.value per manipolarne il valore. È prolisso se confrontato con setAttribute o getAttribute. e non raccomandato come soluzione, ma a prescindere da ciò, una risposta completa alla tua domanda "Perché la notazione dei punti non funziona nel primo caso" - deve includere "lo fa. Stavi solo cercando nel posto sbagliato per gli attributi e i loro valori. " – Radiotrib