Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用JavaScript将段落标记更改为标题标记?_Javascript_Html_Dom - Fatal编程技术网

是否可以使用JavaScript将段落标记更改为标题标记?

是否可以使用JavaScript将段落标记更改为标题标记?,javascript,html,dom,Javascript,Html,Dom,我试图通过JavaScript中的ID将段落元素更改为h1 我的HTML <body> <p id="damn"> Hello </p> </body> 你好 我的JavaScript <script> document.getElementByID("damn").<required missing code to change to h1> </script> document.get

我试图通过JavaScript中的ID将段落元素更改为
h1

我的HTML

<body>
   <p id="damn"> Hello </p>
</body>

你好

我的JavaScript

<script>
    document.getElementByID("damn").<required missing code to change to h1>
</script>

document.getElementByID(“该死”)。
要求的结果是

<body>
   <h1 id="damn"> Hello </h1>
</body>

你好
这应该能奏效。使用。

函数更改标记名(el,新标记名){
var n=document.createElement(newTagName);
var attr=el.attributes;
对于(变量i=0,len=attr.length;i

阅读第二个答案。请包括newElement.id=elem.id;这很接近,但它不会采取原始元素相对于其兄弟元素的位置。根据给定的示例,它的工作做得很好。示例中没有兄弟姐妹;)+1这应该是公认的答案。它维护所有原始元素属性,通过使用innerHTML而不是textContent,它将保留所有子元素(例如可能附加了样式的跨距)。
var elem=document.getElementById("damn");
var parent=elem.parentNode;
var newElement=document.createElement("h1");
newElement.textContent=elem.textContent;
newElement.id=elem.id;
parent.replaceChild(newElement, elem);
function changeTagName(el, newTagName) {
    var n = document.createElement(newTagName);
    var attr = el.attributes;
    for (var i = 0, len = attr.length; i < len; ++i) {
        n.setAttribute(attr[i].name, attr[i].value);
    }
    n.innerHTML = el.innerHTML;
    el.parentNode.replaceChild(n, el);
}

changeTagName(document.getElementById('damn'), 'h1');