【发布时间】:2021-09-16 08:04:58
【问题描述】:
我正在尝试研究一个删除 的逻辑。元素(如果它存在于 div 元素中)。我尝试了替换 的逻辑元素如下:
(div.html().replace(/^\s* /m, ''));
但我要处理的场景的问题是,我想删除仅存在于元素的直接子级的   元素,即假设我们有以下 html 内容:
<div class="block">
<table>
<tr>
<td>
1
</td>
</tr>
<tr>
<td>
2
</td>
</tr>
</table>
</div>
将类名 block 的 div 元素视为我们要采用的父元素。在这里,我只想查看该元素的子元素,而不是那些子元素中的子元素,这意味着 inside 元素不应该被纳入图片,只有 最后(在桌子结束后)是我想要删除的。谁能想到解决这个问题的办法?
谢谢
【问题讨论】:
-
“有人能想出解决这个问题的方法吗?” - 当然,不要再用正则表达式在 HTML 上乱搞了,改用 DOM 方法……循环div 的子节点,如果它们只是文本节点,请检查它包含的内容。 (您可以为 that 部分应用正则表达式,将其替换为单个文本节点的内容。)
-
@CarstenLøvboAndersen 据我所知,这就是 OP 目前正在做的事情,这也删除了单元格内的  ,这是他们不想要的
-
你需要这个:developer.mozilla.org/en-US/docs/Web/API/Node/childNodes(jQuery 在这里没用)匹配 textNodes 的合适正则表达式是
/^((&nbsp)|\s)+$/ -
这能回答你的问题吗? How do I select text nodes with jQuery?
标签: javascript html jquery