使用 Pure JS 更改 HTML 标签名称
change HTML tag name using Pure JS
<div id="demo"></div>
document.getElementsById("demo").onclick = function() {
this.tagName = "p";
};
// and then the output should be:
<p id="demo"></p>
我想使用纯 javascript 来更改标签名称,
有人可以帮忙吗?
通过一些时髦的 dom 操作,您可以轻松地做到这一点。
您只需创建一个新元素,移动所有元素以便保留 onclick 处理程序等,然后替换原始元素。
function addClickEventToSpan() {
document.getElementById('whoa').addEventListener("click",function(){alert('WHOA WORLD! HELLO!');});
}
function transform(id){
var that = document.getElementById(id);
var p = document.createElement('p');
p.setAttribute('id',that.getAttribute('id'));
// move all elements in the other container.
// remember to use firstchild so you take all the childrens with you and maintain order.
// unles you like reversed order things.
while(that.firstChild) {
p.appendChild(that.firstChild);
}
that.parentNode.replaceChild(p,that);
}
p { background-color:green;color:white; }
div { background-color:blue;color:white; }
<div id="demo">Hello fantastical<span id="whoa" style="color:red">WORLD</span>
<UL>
<LI>something</LI>
</UL>
</div>
<input type="button" onclick="addClickEventToSpan('demo')" value="bind event handler(click WORLD)">
<input type="button" onclick="transform('demo')" value="transform">
<div id="demo"></div>
document.getElementsById("demo").onclick = function() {
this.tagName = "p";
};
// and then the output should be:
<p id="demo"></p>
我想使用纯 javascript 来更改标签名称,
有人可以帮忙吗?
通过一些时髦的 dom 操作,您可以轻松地做到这一点。
您只需创建一个新元素,移动所有元素以便保留 onclick 处理程序等,然后替换原始元素。
function addClickEventToSpan() {
document.getElementById('whoa').addEventListener("click",function(){alert('WHOA WORLD! HELLO!');});
}
function transform(id){
var that = document.getElementById(id);
var p = document.createElement('p');
p.setAttribute('id',that.getAttribute('id'));
// move all elements in the other container.
// remember to use firstchild so you take all the childrens with you and maintain order.
// unles you like reversed order things.
while(that.firstChild) {
p.appendChild(that.firstChild);
}
that.parentNode.replaceChild(p,that);
}
p { background-color:green;color:white; }
div { background-color:blue;color:white; }
<div id="demo">Hello fantastical<span id="whoa" style="color:red">WORLD</span>
<UL>
<LI>something</LI>
</UL>
</div>
<input type="button" onclick="addClickEventToSpan('demo')" value="bind event handler(click WORLD)">
<input type="button" onclick="transform('demo')" value="transform">