如何使用jQuery / plain旧javascript更改元素(例如h1 - > h2)?

时间:2008-10-27 16:18:21

标签: javascript jquery

当然,文档有效性存在一系列可能的错误,但在将段落(p)更改为address元素时,会出现我的直接障碍。我当前的方法是(或多或少):

var p = $('p#test');
p.replaceWith('<address>' + p.html() + '</address>');

但是这个具体案例没有成功;它适用于p - >; blockquote或h2 - &gt; H3。 Firebug建议由于某种原因,文档中添加了一个自闭元素(<address/>)。

有人能发现错误或建议替代方法吗?

2 个答案:

答案 0 :(得分:9)

var p = $('p#test');
var a = $('<address></address>').
    append(p.contents());
p.replaceWith(a);

您的解决方案会遇到各种可怕的HTML转义问题以及可能的注入攻击。

答案 1 :(得分:0)

您可以在标题周围使用占位符:

<span id="demo"><h1>Title</h1></span>

然后使用JavaScript DOM为innerHTML属性创建新值。

<script type="javascript">

setTitle = function(id, tag, title) {
  var container = document.getElementById(id);
  container.innerHTML = '<' + tag + '>' + title + '</' + tag + '>';
}

setTitle('demo', 'h1', 'My Title');

</script>