jQuery append () vs appendChild()
вот пример кода:
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()?
Реальные сценарии?
6 ответов
главное отличие в том, что 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-это метод в JavaScript
документация MDN по методу добавления
цитируя MDN
на
ParentNode.appendметод вставляет набор объектов узла илиDOMStringобъекты после последнего ребенкаParentNode.DOMStringобъекты вставляются как эквивалентные текстовые узлы.
это не поддерживается IE и Edge, но поддерживается Chrome (54+), Firefox (49+) и Опера(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>append - это метод jQuery для добавления некоторого содержимого или HTML к элементу.
$('#example').append('Some text or HTML');
appendChild является чистым методом DOM для добавления дочернего элемента.
document.getElementById('example').appendChild(newElement);
Я знаю, что это старый и отвеченный вопрос, и я не ищу голосов, я просто хочу добавить дополнительную мелочь, которая, как я думаю, может помочь новичкам.
да 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>');