【发布时间】:2014-05-20 12:21:32
【问题描述】:
我尝试查找和替换文本(使用 jQuery)。实际上,我正在尝试在文本周围添加一个 span 元素。我也应该能够再次删除 span 而不会丢失里面的文本。
例如,假设我有以下情况开始:
<span>This is a span element</span>
我希望能够使用 jQuery/JavaScript 动态地做到这一点:
<span>This is a <span class="marked">span</span> element</span>
我也应该能够删除 span.marked 并返回第一个结果。
但问题是我想对具有多个子项和子项等的容器内的所有文本执行此操作。
到目前为止我得到的代码将执行以下操作,这不是我想要的:
<<span class="marked">span</span>>This is a <span class="marked">span</<span class="marked">span</span> element</span>
我想对页面上的所有文本执行此操作,而不仅仅是找到的第一个文本。
编辑:到目前为止我的代码:
var re = new RegExp(word, 'g');
$('.container').html($('.container').html().replace(re, '<span class="marked">' + word + '</span>'));
word 是一个字符串,其中包含要环绕的文本。
【问题讨论】:
-
给你看JS代码。
-
在你的最后一行代码中,我看到 dubbel > 围绕你的第一个 span="marked"。这是打字错误还是...?
-
您可以搜索“span”字词,前后有空格,而不仅仅是“span”。所以你的
span元素不会被替换。 -
@VDesign 这就是他遇到的问题。他的代码用
<span class="marked">....将“跨度”包含在他现有的<span>标签中。 -
我有一个可行的解决方案。请参阅下面的答案。
标签: javascript jquery html dom