2013-01-09 35 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); 

参考:

相关问题