我正在用javascript寫一個簡單的手風琴。jQuery的JavaScript版本之前
我需要在DOM中的另一個元素之前放置一個元素。我知道我可以用jQuery的insertBefore來做到這一點,但我不熟悉如何使用JavaScript來做到這一點。
任何幫助表示讚賞。
我正在用javascript寫一個簡單的手風琴。jQuery的JavaScript版本之前
我需要在DOM中的另一個元素之前放置一個元素。我知道我可以用jQuery的insertBefore來做到這一點,但我不熟悉如何使用JavaScript來做到這一點。
任何幫助表示讚賞。
的原生API有.insertBefore
方法。您將要插入的元素和要插入的元素傳遞給它。
// Create a new textNode, get reference to container
var foo = document.createTextNode("Foo"),
div = document.getElementById("foo");
// Insert new textNode before container's firstChild
div.insertBefore(foo, div.firstChild);
對於其他人來說,你需要在parentNode上調用這個方法嗎?不'nodeToInsertBefore.insertBefore(nodeToInsert);'感覺好多了? – jbabey
您可以使用insertBefore方法
請考慮參考[真實文檔](https://developer.mozilla.org/en-US/docs/DOM/Node.insertBefore)而不是[w3schools](http://www.w3fools.com)。此外,你的答案應該提供的不僅僅是一個鏈接。 – jbabey
使用insertBefore()
:
var el = document.getElementById('elementID'),
newElement = document.createElement('div');
el.parentNode.insertBefore(newElement, el);
參考:
https://developer.mozilla.org/en-US/docs/DOM/Node.insertBefore –
如果你看一下[爲的insertBefore jQuery的源(https://github.com/jquery/jquery /blob/master/src/manipulation.js),它只是調用'this.parentNode.insertBefore(elem,this);'。 – jbabey