en JavaScript, podemos crear un nuevo elemento DOM de la siguiente manera ...Usando createAttribute vs. simplemente estableciendo el atributo directamente?
Al utilizar el createAttribute() + setAttributeNode() métodos DOM:
var input = document.createElement("input"),
type = document.createAttribute("type");
type.nodeValue = "text";
input.setAttributeNode(type);
container.appendChild(input);
o por sólo la creación de los atributos directamente :
var input = document.createElement("input");
input.type = "text";
container.appendChild(input);
Este último puede ser bastante menos código, incluso cuando solo hay un par de atributos por elemento.
La pregunta: ¿Alguien ha encontrado alguna desventaja del último método (establecimiento de atributos directamente)?
Probé esto en varios navegadores (los últimos FF, IE, Safari, Opera, IE antiguos - incluso IE6 funcionó) y en una prueba básica (insertando una entrada de texto con atributos tipo, nombre y maxLength) pasaron todos . Here's the fiddle si alguien lo necesita.
No es del todo cierto que usar 'setAttribute()' y 'getAttribute()' sea siempre equivalente a usar la propiedad correspondiente. Por ejemplo, la propiedad 'valor' (que siempre refleja el valor actual de una entrada) existe por separado del atributo' valor' (que representa solo el valor inicial). Un ejemplo más obvio es el atributo 'style', que contiene una cadena, frente a la propiedad' style', que es un objeto 'CSSStyleDeclaration' con propiedades individuales para cada propiedad de estilo individual. –
¿dónde dije que siempre son equivalentes? : P –
Punto justo, no lo hiciste. No estoy seguro de qué provocó mi comentario ahora. –