如何使用Jquery(或Javascript)替换表中的文本?

如何使用Jquery(或Javascript)替换表中的文本?,javascript,jquery,html,replace,Javascript,Jquery,Html,Replace,我有一张桌子 <table id="t"> <tr> <td> fsabcdf </td> <td> xyzabcdf </td> </tr> <tr> <td> fsabcdf </td> <td> xyzabcdf </td>

我有一张桌子

<table id="t">
     <tr>
           <td> fsabcdf </td>
           <td> xyzabcdf </td>
     </tr>
     <tr>
           <td> fsabcdf </td>
           <td> xyzabcdf </td>
     </tr>
     <tr>
           <td> fsabcdf </td>
           <td> xyzabcdf </td>
     </tr>
</table>
我想用abc替换abcin td,如下所示

<table id="t">
     <tr>
           <td> fs<span class='c2'>abc</span>df </td>
           <td> xyz<span class='c2'>abc</span>df </td>
     </tr>
     <tr>
           <td> fs<span class='c2'>abc</span>df </td>
           <td> xyz<span class='c2'>abc</span>df </td>
     </tr>
     <tr>
           <td> fs<span class='c2'>abc</span>df </td>
           <td> xyz<span class='c2'>abc</span>df </td>
     </tr>
</table>
我在谷歌上搜索解决方案,但没有找到

提前感谢。

您可以:

$('td').html(function(i, html){
  return html.replace(/abc/g, '<span class="c2">abc</span>'); 
});
这将遍历每一个,查看其文本,然后将每次出现的abc替换为您想要的范围内的abc。

类似于:

$('td').each(function () {
    $(this).html($(this).html().replace('abc', '<span class="c2">abc</span>'));
});
试试这个:

$('#t td').each(function(){
    $(this).html( $(this).html().replace("abc","<span class='c2'>abc</span>") );
});

在服务器上处理此问题可能更容易。这是一种可能性吗?顺便说一句,您没有找到任何结果,因为每个用例的实现可能不同……不@Lix,我应该只处理HTML和Javascriptor jquery,我的工作在视图中,我无法访问控制器或模型。@Lix,我在jquery中找到了类似wrap的方法,但问题是我无法从td$此处写入内容中选择部分文本。wrap Yes-这是因为wrap命令对元素而不是文本部分进行操作。在这种情况下,您将无法使用wrap。html回调函数的第二个参数包含元素的当前html,使用它可以比创建jQuery对象而不是downvoter更有效。感谢您的soutions@BillCriswell,它可以正常工作,但它只替换了td中第一个出现的“abc”,所以我把它改成了/abc/g;现在每一件事都在改变