2012-01-07 87 views

回答

5

我不知道這是否是你問什麼,因爲你的問題是不完全清楚,我,但我認爲這是它:

var nameInput = document.getElementById('name'); 
var textNode = document.createTextNode('Some Text'); 
nameInput.parentNode.insertBefore(textNode, nameInput.nextSibling); 

Example JSFiddle

+0

+1,但你能解釋一下爲什麼這不起作用? 'nameInput.parentNode.insertAfter(textNode,nameInput);'? – 2012-01-07 04:22:19

+1

@AdamRackis默認情況下,在DOMElement中沒有insertAfter函數 – Paulpro 2012-01-07 04:23:35

+0

我明白了 - 顯然jQuery讓我不知道大部分原生dom的東西:) – 2012-01-07 04:24:56

1

你可以使用insertAfter方法:

function insertAfter(element, after) { 
    element.parentNode.insertBefore(after, element.nextSibling); 
} 

<input>元素之後插入一個新的文本節點(document.createTextNode(myText))。

+0

函數中的if語句不是必需的,因爲如果第二個參數insertBefore爲空它自動附加。整個函數體可以是:'element.parentNode.insertBefore(after,element.nextSibling);' – Paulpro 2012-01-07 04:02:30

+0

@ user1:我在發佈後大約5秒鐘就拿出它。 :) – Ryan 2012-01-07 04:03:19

+0

+1啊我看到哈哈,我可能花了更長的時間輸入評論; P – Paulpro 2012-01-07 04:04:28