【发布时间】:2015-10-29 16:26:13
【问题描述】:
我有一个函数可以在匹配字符周围向 dom 添加一个元素。
所以用户搜索“可以”
例如“<td>Canada</td>”的每个实例都会变成
<td><strong class='highlight'>Can</strong>Ada</td>
当用户进行下一次搜索时,旧的突出显示被删除。
就像这样,$('.highlight').contents().unwrap();
问题是,如果用户随后尝试再次搜索加拿大,它将找不到,因为(至少对我而言)发生了一些奇怪的事情......
页面仍显示“加拿大”一词,如果我使用 .html() 或 .text() 提醒表格单元格的内容,则提醒仍显示“加拿大”。
如果我使用 chrome 检查器右键单击表格单元格中的单词 canada,我可以看到它现在被拆分为
<td>
"Can"
"Ada"
</td>
所以搜索加拿大的 dom 将不再找到它,但搜索 'Can' 会.....
那么这个拆分是怎么回事,但是在警报时拆分不会保持,我该如何解决它,所以当我删除强元素时它仍然是一个字符串......?
谢谢
【问题讨论】:
-
为什么不
$('.highlight').parent().html(function() { return this.innerText; });? -
我不确定你的建议是什么?