2012-01-07 109 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