的開始,我有以下的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