Así que estoy aprendiendo a manipular el DOM y me di cuenta de una cosa interesante:Javascript: setAttribute() v.s. element.attribute = valor para establecer el atributo "nombre"
Digamos que quiero establecer el atributo name
de un elemento mediante el uso de la". " notación de puntos:
element.name = "someName";
console.log(document.getElementsByName("someName")[0]); // returns "undefined"??
Sin embargo si uso el método document.setAttribute()
, que funciona bien:
element.setAttribute("name", "someName");
console.log(document.getElementsByName("someName")[0]); // returns the element like it should.
No sé por qué el método de notación de puntos no funciona en el primer caso.
¿Por qué sucede esto?
Generalmente, trate de evitar el uso de 'getElementsByName' – zzzzBov
¿Por qué se debe evitar el uso de getElementsByName? –
Los atributos SON accesibles usando notación de puntos si así es como desea acceder a ellos. Si desea acceder a los atributos mediante la notación de puntos, debe consultar obj.attributes.attributeName para recuperar el atributo y obj.attributes.attributeName.value para manipular su valor. Es largo sin aliento cuando se compara con setAttribute o getAttribute. y no se recomienda como una solución, pero independientemente de eso, una respuesta completa a su pregunta "¿Por qué la notación de puntos no funciona en el primer caso?" - tiene que incluir "sí. Usted solo estaba buscando en el lugar equivocado los atributos y sus valores ". – Radiotrib