jQuery unwrap()刺裂问题

用户名

我有一个功能,可以在匹配字符周围为dom添加元素。

因此,用户搜索“可以”

例如,“ <td>Canada</td>”的每个实例都将变为

<td><strong class='highlight'>Can</strong>Ada</td>

用户进行下一个搜索时,将删除旧的突出显示。

像这样 $('.highlight').contents().unwrap();

问题是,如果用户随后尝试对加拿大进行另一次搜索,将不会被发现,因为(至少对我而言)发生了奇怪的事情...

该页面仍显示单词'Canada',如果我使用.html()或.text()来警告表格单元格的内容,则警告仍将显示'Canada'。

如果我使用chrome inspector右击表格单元中的canada一词,我会看到它现在像

<td>
    "Can" 
    "Ada" 
</td>

因此,搜索dom到加拿大将不再找到它,而搜索“ Can”将.....

因此,这种拆分是如何进行的,但是在发出警报时不保留拆分,以及如何解决该拆分,因此当我删除强元素时,它仍然是单个字符串...?

谢谢

安迪·诺尔克(Andy Noelker)

最好通过element.normalize修复

unwrap()正在将您的元素拆分为单独的文本节点,normalize()并将其合并回一起。删除突出显示后,只需遍历所有带有文本的元素(在本例中为td)并将其标准化。

$('.highlight').contents().unwrap();

$('td').each(function(index,td){
    td.normalize();
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章