如何使用JavaScript / jQuery用文本替换元素?

时间:2014-02-01 10:07:55

标签: javascript jquery html dom

所以假设我有这个:

<span id="foo">bar</span>

我想用它替换它:

bar

换句话说,我想从DOM中删除span,并将其内容插入到位。

如何使用尽可能少的代码实现这一目标?我想使用纯JavaScript,但jQuery也很好。

感谢。

4 个答案:

答案 0 :(得分:5)

使用textNode的简单JS:

var span = document.getElementById("foo");
span.parentNode.replaceChild(document.createTextNode("bar"), span);

答案 1 :(得分:4)

.replaceWith ...

$( "#foo" ).replaceWith( "bar" );

jQuery:Documentation»

答案 2 :(得分:4)

使用.unwrap()

$("#foo").contents().unwrap();

答案 3 :(得分:1)

使用jQuery,你可以使用replaceWith方法和childNode属性用它的内容替换元素,这将适用于你的元素有多个子节点的情况:

$('#foo').replaceWith(function() {
   return this.childNodes;
});

使用类似以下内容的纯JavaScript应该有效:

var foo = document.getElementById('foo');

while(foo.childNodes.length)
   foo.parentNode.insertBefore(foo.childNodes[0], foo);

foo.parentNode.removeChild(foo);

http://jsfiddle.net/mM54V/