如何转换此结构
<div class="parent">
<div class="someclass">
<b>some HTML</b>
...
</div>
<div class="someclass">
<b>some HTML</b>
...
</div>
</div>
到
<div class="parent">
<span class="someclass">
<b>some HTML</b>
...
</span>
<span class="someclass">
<b>some HTML</b>
...
</span>
</div>
我有有效的HTML标记,但由于还有很多其他div,我无法做preg_replace。
我喜欢服务器端解决方案(PHP)
答案 0 :(得分:1)
这是一个PHP示例,使用DOM Document
,DOM Element
和DOM Node
将span替换为span。是否是最有效的方式......我不完全确定。
PHP代码
$Dom = new DOMDocument();
$Dom->loadHTML('<div id="someid"><b>some HTML</b>...</div>');
$Ele = $Dom->getElementById('someid');
$New = $Dom->createElement('span', $Ele->nodeValue);
$New->setAttribute('id', $Ele->getAttribute('id'));
$Parent = $Ele->parentNode;
$Parent->removeChild($Ele);
$Parent->appendChild($New);
echo $Dom->saveHTML();
来自echo
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><span id="someid">some HTML...</span></body></html>
您可以使用DOM Fragment
忽略所有html,正文和doctype标记。
答案 1 :(得分:-2)
<div id="container">
<div id="test" style="color:blue;">test</div>
</div>
<script>
var container = document.getElementById("container");
var html = container.innerHTML.replace(new RegExp("<div","g"),"<span");
html = html.replace(new RegExp("<\/div","g"),"</span");
container.innerHTML = html;
</script>