使用jQuery更改元素的类型

时间:2011-11-07 14:39:37

标签: javascript jquery html

如果我知道元素的ID,是否可以更改它所拥有的HTML标记的类型?

例如,如果您有<p id="p">Lots and lots of text here.</p>,是否可以将其更改为<span id="p">....

感谢。

4 个答案:

答案 0 :(得分:9)

您可以使用replaceWith方法执行此操作。您需要重建替换的属性。

$('#p').replaceWith(function(){
   return '<span>' + $(this).contents().text() + '</span>';
});

Working example

答案 1 :(得分:2)

你可以这样做:

var a = $('#p').text();
$('#p').replaceWith('<span id="#p">' + a + '</span>');

http://jsfiddle.net/teBuN/

答案 2 :(得分:2)

var el = document.getElementById(id);
var new = document.createElement("span");
new.id = el.id;
[].forEach.call(el.childNodes, function (node) {
  new.appendChild(node);
});
el.parentNode.replaceChild(new, el);

现在,一个好问题,就是为什么。你为什么要改变html元素?

当然,您为这段数据选择了最具语义性的元素,为什么另一个元素会成为更好的选择呢?

答案 3 :(得分:1)

$("p").replaceWith(....) .............