我想做什么:调用unload-function来改变
<span>some content</span>
到
<label>some content</label>
是否可以使用javascript将span-tag更改为label-tag?如果有可能我该怎么做?
日Thnx,
... doro
答案 0 :(得分:4)
首先,您需要获得对SPAN元素的引用,然后您可以使用新元素替换它:
HTML:
<span id="something">Content</span>
JavaScript的:
var span = document.getElementById('something');
var label = document.createElement('label');
label.innerHTML = span.innerHTML;
span.parentNode.replaceChild( label, span );
答案 1 :(得分:2)
您可以使用replace()
。更多信息here
我不是很擅长RegExp,所以我无法准确地告诉你要写什么,但有些内容如下:
var divHTML = getElementById("myDiv"); //The div which contains your spans
divHTML.innerHTML.replace(/<span>/gi, "<label>");
divHTML.innerHTML.replace(/<\/span>/gi, "</label>");
请不要因此而破坏我:p
编辑:如果您想维护类名,ID等,只需省略右角括号:
divHTML.innerHTML.replace(/<span/gi, "<label");
这会将<span id="mySpan" class="spans">
变为<label id="mySpan" class="spans">
答案 2 :(得分:2)
(使用jQuery)如果需要在转换之间维护类:
$("span").each(function(){
so_classes = $(this).attr("class");
so_value = $(this).html();
so_newLabel = $("<label></label>").html(so_value);
if (so_classes.length > 0) {
$(so_newLabel).attr("class",so_classes);
}
$(this).replaceWith(so_newLabel);
});
转换此
<span>Hello World</span>
<span class="bigger"><strong>Hello World!</strong></span>
<span class="big blue">Hello, <em>World</em>.</span>
进入这个
<label>Hello World</label>
<label class="bigger"><strong>Hello World!</strong></label>
<label class="big blue">Hello, <em>World</em>.</label>
答案 3 :(得分:1)
如果你正在使用jQuery,你可以使用replaceWith()
jQuery.each($("span"), function() {
$(this).replaceWith("<label>" + $(this).text() + "</label>");
});
答案 4 :(得分:0)
document.body.innerHTML =
document.body.innerHTML.
replace(/<span>/g, '<label>').
replace(/<\/span>/g, '</label>');