Javascript 使用regex替换外部span标记
使用javascript替换方法,我希望找到以下字符串:Javascript 使用regex替换外部span标记,javascript,regex,Javascript,Regex,使用javascript替换方法,我希望找到以下字符串: <span class="memberX"><span class="member19">text</span></span> <---X is any number text如果这是在DOM中,则不需要正则表达式。您应该只操纵DOM本身 var spans = document.querySelectorAll('span[class^=member] > span[c
<span class="memberX"><span class="member19">text</span></span> <---X is any number
text如果这是在DOM中,则不需要正则表达式。您应该只操纵DOM本身
var spans = document.querySelectorAll('span[class^=member] > span[class^=member]');
for (var i = 0; i < spans.length; i++) {
spans[i].parentNode.parentNode.insertBefore(spans[i], spans[i].parentNode);
spans[i].parentNode.removeChild(spans[i].nextSibling);
}
var span=document.querySelectorAll('span[class^=member]>span[class^=member]');
对于(变量i=0;i
先读
阅读文档对象模型(简写为DOM)
使用JS提供的DOM函数遍历DOM树
编写遍历DOM树的遍历算法
对于您遇到的每个span
元素,检查它是否有一个子元素,该子元素也是span。如果是这种情况,如果适合您的情况,您应该将父span
替换为子span
你的意思是你有一个包含html的输入字符串,其中包含特定文本,还是你想在当前页面上找到这些元素?使用DOM操纵函数,而不是正则表达式。+1/me建议DOM漫游,其他回答者附带querySelectorAll
,让人大吃一惊D+1。在看到您的答案之前,我在想使用jQuery和您使用的选择器有多容易:$('span[类]^=“成员"] > span[class^=“member”]').unwrap();
.Nice answer.nnnnnn,我喜欢你的答案。一个问题,如果我不是直接操作DOM而是在变量中传递一块HTML内容,我将如何实现这一点?然后我必须操作变量并将新值设置为自身?@Chad:var div=document.createElement(“div”);div.innerHTML=myhtml;
然后使用div
作为根目录,而不是文档
。
var spans = document.querySelectorAll('span[class^=member] > span[class^=member]');
for (var i = 0; i < spans.length; i++) {
spans[i].parentNode.parentNode.insertBefore(spans[i], spans[i].parentNode);
spans[i].parentNode.removeChild(spans[i].nextSibling);
}