使用Javascript将所有span标签更改为标签标签?
问题描述:
我想做什么:调用卸载功能改变使用Javascript将所有span标签更改为标签标签?
<span>some content</span>
到
<label>some content</label>
是否有可能改变的跨度标签与JavaScript的一个标签,标签?如果有可能我该怎么做?
日Thnx,
... DORO
答
如果你正在使用jQuery你可以使用replaceWith()
jQuery.each($("span"), function() {
$(this).replaceWith("<label>" + $(this).text() + "</label>");
});
答
可以使用replace()
。更多信息here
我不是在正则表达式非常好,所以我不能告诉你到底该怎么写,而是沿着线的东西:
var divHTML = getElementById("myDiv"); //The div which contains your spans
divHTML.innerHTML.replace(/<span>/gi, "<label>");
divHTML.innerHTML.replace(/<\/span>/gi, "</label>");
请不要胸围我在这虽然:p
编辑:如果你想保持类的名称,编号和这样的,你只是离开了直角形支架:
divHTML.innerHTML.replace(/<span/gi, "<label");
这将打开<span id="mySpan" class="spans">
成<label id="mySpan" class="spans">
答
首先,你需要获得对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);
答
document.body.innerHTML =
document.body.innerHTML.
replace(/<span>/g, '<label>').
replace(/<\/span>/g, '</label>');
答
(使用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>
为什么你想这样做? – rahul 2009-07-23 11:04:12
所以我可以添加一个onfocus,它应该可以在opera中工作,但是不会跨度...我需要b/ca用户可以更改内容b/c contenteditable设置为true,但是如果更改不完全正确正确的,它需要逆转到旧的状态...哦,是的,我一定可以使用标签的权利,但页面是动态构建的,我永远不会知道我得到了什么,所以当我有一个跨度contenteditable = true,现在我知道如何将它们更改为标签,即使在歌剧中,这些标签也可以工作。好吧,我很希望:) – doro 2009-07-23 12:16:06