2013-01-09 94 views
-1

我正在用javascript寫一個簡單的手風琴。jQuery的JavaScript版本之前

我需要在DOM中的另一個元素之前放置一個元素。我知道我可以用jQuery的insertBefore來做到這一點,但我不熟悉如何使用JavaScript來做到這一點。

任何幫助表示讚賞。

+5

https://developer.mozilla.org/en-US/docs/DOM/Node.insertBefore –

+1

如果你看一下[爲的insertBefore jQuery的源(https://github.com/jquery/jquery /blob/master/src/manipulation.js),它只是調用'this.parentNode.insertBefore(elem,this);'。 – jbabey

回答

2

的原生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); 

小提琴:http://jsfiddle.net/jonathansampson/rn5pa/

+0

對於其他人來說,你需要在parentNode上調用這個方法嗎?不'nodeToInsertBefore.insertBefore(nodeToInsert);'感覺好多了? – jbabey

1

您可以使用insertBefore方法

+1

請考慮參考[真實文檔](https://developer.mozilla.org/en-US/docs/DOM/Node.insertBefore)而不是[w3schools](http://www.w3fools.com)。此外,你的答案應該提供的不僅僅是一個鏈接。 – jbabey

2

使用insertBefore()

var el = document.getElementById('elementID'), 
    newElement = document.createElement('div'); 

el.parentNode.insertBefore(newElement, el); 

參考:

相關問題