Eu tenho duas maneiras de criar um <div>
uso jQuery
.
Ou:
var div = $("<div></div>");
$("#box").append(div);
Ou:
$("#box").append("<div></div>");
Quais são as desvantagens de usar o segundo caminho que não seja a reutilização?
Eu tenho duas maneiras de criar um <div>
uso jQuery
.
Ou:
var div = $("<div></div>");
$("#box").append(div);
Ou:
$("#box").append("<div></div>");
Quais são as desvantagens de usar o segundo caminho que não seja a reutilização?
.html
, mas não.append
no segundo caso?Respostas:
A primeira opção oferece mais flexibilidade:
E, claro,
.html('*')
substitui o conteúdo, enquanto.append('*')
não, mas acho que essa não foi sua pergunta.Outra boa prática é prefixar suas variáveis jQuery com
$
:Existe algum motivo específico para o uso de $ with variable no jQuery
Colocar aspas em torno do
"class"
nome da propriedade a tornará mais compatível com navegadores menos flexíveis.fonte
$
", na minha opinião. Apenas observe que o que você fez não exige$div
:$("<div>", {id: 'foo', class: 'a', click: function () {}}).appendTo("#box");
$div
. Eu não tinha visto essa sintaxe antes, mas sou novo no Jquery.$("<div>", {id: "foo", class: "a"});
. Eu quero saber se existem outras opções para elePessoalmente, acho que é mais importante que o código seja legível e editável que o desempenho. Qualquer que você achar mais fácil de olhar e deve ser o escolhido para os fatores acima. Você pode escrevê-lo como:
E seu primeiro método como:
Mas no que diz respeito à legibilidade; a abordagem jQuery é a minha favorita . Siga estas dicas úteis, notas e práticas recomendadas do jQuery
fonte
Maneira muito mais expressiva,
Referência: Documentos
fonte
class
deve estar entre aspas, de acordo com os documentos (via link do Documentos acima): "O nome" classe "deve ser citado no objeto, pois é uma palavra reservada para JavaScript, e" className "não pode ser usado, pois se refere à propriedade DOM , não o atributo ".De acordo com a documentação oficial do jQuery
Para criar um elemento HTML,
$("<div/>")
ou$("<div></div>")
é o preferido.Então você pode usar
appendTo
,append
,before
,after
e etc ,. para inserir o novo elemento no DOM.PS: jQuery versão 1.11.x
fonte
De acordo com a documentação para 3.4 , é preferível usar atributos com o
attr()
métodofonte
class
aspas, isso falhará silenciosamente e poderá resultar em insanidade.Eu recomendaria a primeira opção, na qual você realmente cria elementos usando o jQuery. a segunda abordagem simplesmente define a propriedade innerHTML do elemento como uma string, que por acaso é HTML, e é mais suscetível a erros e menos flexível.
fonte
Se
#box
estiver vazio, nada, mas se não for, eles fazem coisas muito diferentes. O primeiro adicionará umdiv
como o último nó filho de#box
. O último substitui completamente o conteúdo de#box
um únicodiv
texto vazio e tudo.fonte
Também é possível criar um elemento div da seguinte maneira:
adicionar classe
também pode executar
append()
eappendChild()
fonte