Zaczynam od JavaScript i DOM, starając się celowo trzymać się z daleka od jQuery i tym podobnych, przynajmniej na chwilę. Mając to na uwadze, tutoriale ogólnie podać przykład takiego jak ten:Zrozumienie podstawowego łańcucha DOM
h = document.createElement("h1");
t = document.createTextNode("Hello.");
h.appendChild(t);
document.body.appendChild(h);
W dążeniu do usprawnienia tego i uniknięcia zmiennych pomyślnie przykuty następujące:
document.body.appendChild(document.createElement("h1")).appendChild(document.createTextNode("Hello."));
Chociaż to działa, próbowałem skrócić następujące prepend operacji:
h = document.createElement("h1");
t = document.createTextNode("Put this on top.");
h.appendChild(t);
document.body.insertBefore(h,document.body.firstChild);
z następujących czynności:
document.body.insertBefore(document.createElement("h1")).appendChild(document.createTextNode("Put this on top."),document.body.firstChild);
Ale tym razem nie zadziałało zgodnie z oczekiwaniami: tekst jest umieszczany na samym końcu elementu BODY, uzyskując wstawkę zamiast przedrostka.
Wyobrażam sobie, że udany pierwszy przypadek to tylko fuks, ale nie widzę, co jest nie tak z tą praktyką łańcuchową.
zostało zamknięte ('insertBefore) 'parens po' createElement() '. Wydaje się więc, że łańcuch kontynuuje się za pomocą metody 'appendChild()'. Co mnie zaskakuje, spodziewałbym się błędu. –
Chociaż takie łańcuchowanie jest interesujące jako sposób zrozumienia działania tych metod, wynik jest trudniejszy do odczytania. Konieczność przewijania w prawo, aby zobaczyć całe stwierdzenie, jest dość irytująca, ale możesz wstawić podział wiersza przed '.appendChild()' lub po parens otwarcia z jednej lub więcej metod ... – nnnnnn
Użyj narzędzia minifying, aby "usprawnić i unikaj zmiennych "- po prostu utrudniasz czytanie, utrzymywanie i rozszerzanie kodu. – jbabey