当然,文档有效性存在一系列可能的错误,但在将段落(p
)更改为address
元素时,会出现我的直接障碍。我当前的方法是(或多或少):
var p = $('p#test');
p.replaceWith('<address>' + p.html() + '</address>');
但是这个具体案例没有成功;它适用于p - >; blockquote或h2 - &gt; H3。 Firebug建议由于某种原因,文档中添加了一个自闭元素(<address/>
)。
有人能发现错误或建议替代方法吗?
答案 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>