使用Javascript将所有span-tag更改为label-tags?

时间:2009-07-23 10:50:36

标签: javascript

我想做什么:调用unload-function来改变

<span>some content</span>

<label>some content</label>

是否可以使用javascript将span-tag更改为label-tag?如果有可能我该怎么做?

日Thnx,

... doro

5 个答案:

答案 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>");
}); 

有关详情,请访问:http://docs.jquery.com/Manipulation/replaceWith

答案 4 :(得分:0)

document.body.innerHTML = 
    document.body.innerHTML.
         replace(/<span>/g, '<label>').
         replace(/<\/span>/g, '</label>');
相关问题