jQuery append () проти appendChild ()


95

Ось зразок коду:

function addTextNode(){
    var newtext = document.createTextNode(" Some text added dynamically. ");
    var para = document.getElementById("p1");
    para.appendChild(newtext);
    $("#p1").append("HI");
}
<div style="border: 1px solid red">
    <p id="p1">First line of paragraph.<br /></p>
</div>

У чому різниця між append()і appendChild()?
Будь-які сценарії реального часу?



Один - метод jQuery, інший - власний метод JS, вони обидва роблять майже те саме, але append () приймає кілька елементів.
— adeneo

Внизу використовується бібліотека (наприклад, jQuery, на яку зазвичай посилаються), зверху використовуються "рідні" методи DOM для додавання елемента.
— Qantas 94 Heavy

Відповіді:


104

Основна відмінність полягає в тому, що appendChildце метод DOM і appendметод jQuery. Другий використовує перший, як ви можете бачити у вихідному коді jQuery

append: function() {
    return this.domManip(arguments, true, function( elem ) {
        if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
            this.appendChild( elem );
        }
    });
},

Якщо ви використовуєте бібліотеку jQuery у своєму проекті, ви завжди будете в безпеці, використовуючи appendдодавання елементів на сторінку.


Чи знаєте ви, чому append "безпечний", а appendChild ні? Що робить domManip?
— Роб Фокс,

2
@RobFox: за допомогою сейфа я мав на увазі сказати, що якщо ви використовуєте jquery, то ви безпечні у використанні, завжди додайте (немає ситуації, коли DOM додаток є кращим). Стосовно domManip, здається, основною метою є використання DOM DocumentFragments. Ось вам опис методу, і ось у вас офіційне слово Джона Резіга про мотивацію використання фрагментів
— Клаудіо Реді,

3
javascript також має ParentNode.append()зараз. будь ласка, перевірте відповідь @ SagarV для отримання додаткової інформації.
— Джо Е.

Я збирався сказати те саме, що @JoE. : див. ParentNode.append () .
— Лонні Бест

46

Більше не

зараз append - це метод у JavaScript

Документація MDN щодо методу додавання

Цитування MDN

ParentNode.appendМетод вставляє набір об'єктів Node або DOMStringоб'єктів після останнього дитини з ParentNode. DOMStringоб'єкти вставляються як еквівалентні текстові вузли.

Це не підтримується IE та Edge, але підтримується Chrome (54+), Firefox (49+) та Opera (39+).

Додаток JavaScript схожий на додаток jQuery.

Ви можете передати кілька аргументів.

var elm = document.getElementById('div1');
elm.append(document.createElement('p'),document.createElement('span'),document.createElement('div'));
console.log(elm.innerHTML);
<div id="div1"></div>


3
MDN не розповідає, що зараз є в javascript, специфікація ES
— Раймондс

17

append є методом jQuery для додавання вмісту або HTML до елемента.

$('#example').append('Some text or HTML');

appendChild - це чисто DOM-метод для додавання дочірнього елемента.

document.getElementById('example').appendChild(newElement);

9

Я знаю, що це старе запитання, на яке відповіли, і я не шукаю голосів, я просто хочу додати зайву дрібницю, яка, на мою думку, може допомогти новачкам.

yes appendChildє DOMметодом і appendє методом JQuery, але практично ключова різниця полягає в тому, що appendChildприймає вузол як параметр, я маю на увазі, якщо ви хочете додати порожній абзац до DOM, вам потрібно створити цей pелемент спочатку

var p = document.createElement('p')

тоді ви можете додати його до DOM, тоді як JQuery appendстворює цей вузол для вас і відразу додає його до DOM, будь то текстовий елемент, елемент HTML або комбінація!

$('p').append('<span> I have been appended </span>');




0

Метод appendchild JavaScript можна використовувати для додавання елемента до іншого елемента. Елемент jQuery Append виконує ту ж роботу, але, звичайно, з меншою кількістю рядків:

Візьмемо приклад Додавання елемента до списку:

а) За допомогою JavaScript

var n= document.createElement("LI");                 // Create a <li> node
var tn = document.createTextNode("JavaScript");      // Create a text node
n.appendChild(tn);                                   // Append the text to <li>
document.getElementById("myList").appendChild(n);  

б) За допомогою jQuery

$("#myList").append("<li>jQuery</li>")
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.