的开始,我有以下的javascript工作插入AJAX响应转换成一个div id为results
:添加DOM元素于母公司
document.getElementById("results").innerHTML=xmlhttp.responseText;
然而,这增加后,那些已经存在的所有新元素。我需要在插入一切之前插入新元素。
我知道这可能是非常微不足道的,但我似乎无法找到自己做。
感谢您的帮助!
的开始,我有以下的javascript工作插入AJAX响应转换成一个div id为results
:添加DOM元素于母公司
document.getElementById("results").innerHTML=xmlhttp.responseText;
然而,这增加后,那些已经存在的所有新元素。我需要在插入一切之前插入新元素。
我知道这可能是非常微不足道的,但我似乎无法找到自己做。
感谢您的帮助!
我不记得确切的语法,但它是这样的:
var newDiv = document.createElement("div");
newDiv.innerHTML=xmlhttp.responseText;
document.getElementById("results").childNodes.addAt(0,newDiv);
,如果你可以使用jQuery,它只是简单:
$("#results").prepend(xmlhttp.responseText);
谢谢! – lampwins
你想要么这个
results.insertAdjacentHTML('beforebegin', xmlhttp.responseText);
或此
results.insertAdjacentHTML('afterbegin', xmlhttp.responseText);
(可变当然results
作为一个参考的DOM元素)
所以,第一个将插入新的内容之前的元素本身(作为一个同级),而第二个将将其插入里面的之前的任何其他孩子)。
谢谢,这也工作。 – lampwins
随着现代js你可以利用prepend
method。目前caniuse.com says only of IE, Edge, and OperaMini are not supported。
ParentNode.prepend(nodesToPrepend);
例如,
ParentNode.prepend(newDiv);
此外,它会自动将文本转换成文本节点,所以你可以做你的使用情况如下:
document.getElementById("results").prepend(xmlhttp.responseText);
不,不。它取代了它们。 – Quentin
[如何在使用javascript定位之前插入元素](http://stackoverflow.com/questions/6415819/how-insert-element-before-anchor-using-javascript) – Gordon
现在,每个AJAX响应都会添加到div。 – lampwins