Tengo 2 formas en que puedo crear un <div>
uso jQuery
.
Ya sea:
var div = $("<div></div>");
$("#box").append(div);
O:
$("#box").append("<div></div>");
¿Cuáles son los inconvenientes de usar una segunda vía que no sea la reutilización?
Tengo 2 formas en que puedo crear un <div>
uso jQuery
.
Ya sea:
var div = $("<div></div>");
$("#box").append(div);
O:
$("#box").append("<div></div>");
¿Cuáles son los inconvenientes de usar una segunda vía que no sea la reutilización?
.html
, pero no.append
en el segundo caso?Respuestas:
La primera opción le brinda más flexibilidad:
Y, por supuesto,
.html('*')
anula el contenido mientras.append('*')
que no, pero supongo que esta no era tu pregunta.Otra buena práctica es prefijar sus variables jQuery con
$
:¿Hay alguna razón específica para usar $ with variable en jQuery?
Colocar comillas alrededor del
"class"
nombre de la propiedad lo hará más compatible con navegadores menos flexibles.fuente
$
", en mi opinión. Solo señalando que lo que has hecho no requiere$div
:$("<div>", {id: 'foo', class: 'a', click: function () {}}).appendTo("#box");
$div
. No he visto esa sintaxis antes, pero soy nuevo en Jquery.$("<div>", {id: "foo", class: "a"});
. Quiero saber si hay otras opciones para elloPersonalmente, creo que es más importante que el código sea legible y editable que performant. Cualquiera que le resulte más fácil de ver y debe ser el que elija para los factores anteriores. Puedes escribirlo como:
Y tu primer método como:
Pero en lo que respecta a la legibilidad; El enfoque jQuery es mi favorito . Siga estos útiles trucos, notas y mejores prácticas de jQuery
fuente
Mucho más expresivo,
Referencia: documentos
fuente
class
debe estar entre comillas, de acuerdo con los documentos (a través del enlace de Documentos anterior): "El nombre" clase "debe estar entre comillas en el objeto ya que es una palabra reservada de JavaScript, y" className "no se puede usar ya que se refiere a la propiedad DOM , no el atributo ".Según la documentación oficial de jQuery
Para crear un elemento HTML,
$("<div/>")
o$("<div></div>")
se prefiere.A continuación, puede utilizar cualquiera de los dos
appendTo
,append
,before
,after
y etc ,. para insertar el nuevo elemento al DOM.PS: jQuery Versión 1.11.x
fuente
De acuerdo con la documentación de 3.4 , se prefiere utilizar atributos con
attr()
método.fuente
class
comillas, esto fallará silenciosamente y puede resultar en locura.Recomendaría la primera opción, donde realmente construyes elementos usando jQuery. El segundo enfoque simplemente establece la propiedad innerHTML del elemento en una cadena, que resulta ser HTML, y es más propensa a errores y menos flexible.
fuente
Si
#box
está vacío, nada, pero si no es así, hacen cosas muy diferentes. El primero agregará adiv
como el último nodo hijo de#box
. Este último reemplaza completamente el contenido de#box
un solo vacíodiv
, texto y todo.fuente
También es posible crear un elemento div de la siguiente manera:
agregar clase
también puede realizar
append()
yappendChild()
fuente