如何替换HTML标记和属性

时间:2017-03-28 03:30:34

标签: javascript php jquery css html5

我有一段像这样的代码

<p style="position:absolute;top:-866px;left:1550px;white-space:nowrap" class="xd">some text

<p style="position:absolute;top:-866px;left:1550px;white-space:nowrap" class="xd">some other text

我需要用

替换它
<h3>some text</h3>
<h3>some other text </h3>

感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

javascript解决方案

<script>
document.getElementsByClassName("xd")[0].outerHTML="<h3>some text</h3>"
</script>

<p style="position:absolute;top:-866px;left:1550px;white-space:nowrap" class="xd">some text</p>
<p style="position:absolute;top:-866px;left:1550px;white-space:nowrap" class="xd">some text</p>
<script>
  var all_p = document.getElementsByClassName("xd");
  while (all_p.length != 0) {
    all_p[0].outerHTML = "<h3>some text</h3>";
  }
</script>

答案 1 :(得分:0)

jquery解决方案:JSFiddle Demo

$('p[class="xd"]').each(function(index,item){
    $(item).replaceWith("<h3>"+$(item).html()+"</h3>");  // keep the text, swap the tags
});

感谢Vishal Taj PM显示更短的解决方案:JSFiddle Demo

(对于这种情况,text()html()之间没有区别

$('p.xd').each(function(){
  $(this).replaceWith("<h3>"+$(this).text()+"</h3>")  
});

答案 2 :(得分:0)

如果您正在寻找使用Jquery的解决方案,您可以使用replaceWith()。它将用新的标签替换现有的标签。

请找到下面的代码段。

$('p.xd').each(function(){
  $(this).replaceWith("<h3>"+$(this).text()+"</h3>")  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<p style="position:absolute;top:-866px;left:1550px;white-space:nowrap" class="xd">some text</p>
<p style="position:absolute;top:-866px;left:1550px;white-space:nowrap" class="xd">some other text</p>