Mam 2 sposoby na utworzenie <div>
użycia jQuery
.
Zarówno:
var div = $("<div></div>");
$("#box").append(div);
Lub:
$("#box").append("<div></div>");
Jakie są wady korzystania z drugiego sposobu innego niż możliwość ponownego użycia?
Mam 2 sposoby na utworzenie <div>
użycia jQuery
.
Zarówno:
var div = $("<div></div>");
$("#box").append(div);
Lub:
$("#box").append("<div></div>");
Jakie są wady korzystania z drugiego sposobu innego niż możliwość ponownego użycia?
.html
, ale nie.append
w drugim przypadku?Odpowiedzi:
Pierwsza opcja zapewnia większą elastyczność:
I oczywiście
.html('*')
zastępuje treść, podczas gdy.append('*')
nie, ale myślę, że to nie było twoje pytanie.Inną dobrą praktyką jest poprzedzanie zmiennych jQuery
$
:Czy istnieje jakiś konkretny powód używania zmiennej $ z zmienną w jQuery
Umieszczenie cudzysłowów wokół
"class"
nazwy właściwości sprawi, że będzie ona bardziej kompatybilna z mniej elastycznymi przeglądarkami.źródło
$
Moim zdaniem dobrą praktyką jest również rozpoczynanie nazw kolekcji jQuery od „ ”. Wystarczy zauważyć, że to, co zrobiłeś, nie wymaga$div
:$("<div>", {id: 'foo', class: 'a', click: function () {}}).appendTo("#box");
$div
. Nie widziałem wcześniej tej składni, ale jestem nowy w Jquery.$("<div>", {id: "foo", class: "a"});
. Chcę wiedzieć, czy istnieją inne opcjeOsobiście uważam, że ważniejsze jest, aby kod był czytelny i edytowalny niż performant. Który z nich jest dla ciebie łatwiejszy do zrozumienia i powinien być tym, który wybierzesz dla powyższych czynników. Możesz to napisać jako:
I twoja pierwsza metoda jako:
Ale jeśli chodzi o czytelność; podejście jQuery jest moim ulubionym . Postępuj zgodnie z tymi przydatnymi sztuczkami jQuery, notatkami i najlepszymi praktykami
źródło
Znacznie bardziej ekspresyjny sposób,
Odniesienie: Dokumenty
źródło
class
powinny być w cudzysłowie, zgodnie z dokumentacją (poprzez link Dokumentów powyżej): „Obiekt” nazwa klasy musi być cytowany w obiekcie, ponieważ jest to słowo zastrzeżone JavaScript, a „className” nie może być użyte, ponieważ odnosi się do właściwości DOM , a nie atrybut ”.Według oficjalnej dokumentacji jQuery
Aby utworzyć element HTML,
$("<div/>")
lub$("<div></div>")
jest preferowany.Następnie można użyć jednej
appendTo
,append
,before
,after
i etc ,. aby wstawić nowy element do DOM.PS: jQuery wersja 1.11.x
źródło
Zgodnie z dokumentacją dla 3.4 , zaleca się stosowanie atrybutów z
attr()
metodą.źródło
class
cytatów, to po cichu zawiedzie i może doprowadzić do szaleństwa.Poleciłbym pierwszą opcję, w której budujesz elementy za pomocą jQuery. drugie podejście po prostu ustawia właściwość innerHTML elementu na ciąg znaków, którym jest HTML, i jest bardziej podatny na błędy i mniej elastyczny.
źródło
Jeśli
#box
jest pusty, nic, ale jeśli nie, to robią bardzo różne rzeczy. Ten pierwszy dodadiv
jako ostatni węzeł potomny#box
. Ten ostatni całkowicie zastępuje zawartość#box
pojedynczym pustymdiv
tekstem i wszystkim.źródło
Możliwe jest również utworzenie elementu div w następujący sposób:
dodaj klasę
może również wykonywać
append()
iappendChild()
źródło