1

使用 javascript replace 方法,我想找到这个字符串:

<span class="memberX"><span class="member19">text</span></span>    <---X is any number

最终输出应该是:

<span class="member19">text</span>

本质上,我想删除可以具有 memberX 类的外部跨度,其中 X 是任意数字。

4

2 回答 2

3

如果这是在 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);
}
于 2012-11-15T20:38:58.403 回答
0
  1. 首先阅读除 XHTML 自包含标签之外的 RegEx 匹配打开标签

  2. 阅读文档对象模型(简称 DOM)。

  3. 使用 JS 提供的 DOM 函数来遍历 DOM 树。

  4. 编写遍历 DOM 树的遍历算法。

  5. span对于您遇到的每个元素,检查它是否有一个也是跨度的子元素。如果是这种情况,如果适合您的情况,您应该用span孩子替换父母。span

于 2012-11-15T20:40:13.207 回答