jquery找到所有确切的td匹配

ra1*_*170 8 javascript jquery

$('#servertable td:eq(' + server + ')')
Run Code Online (Sandbox Code Playgroud)

这只找到1(我认为首先)匹配,如何找到所有匹配.顺便说一句.td:包含对我不起作用.

Pao*_*ino 14

eq期望数字索引仅返回单行.如果要根据内容匹配td,则必须使用:contains选择器.说"它不起作用"并抛弃它不是解决问题的正确方法,因为选择器(很可能)没有错(请注意它的区分大小写,可能是它......)

无论如何,如果你有这样的表:

<table>
  <tr>
    <td>Hello</td>
    <td>World</td>
  </tr>
  <tr>
    <td>World</td>
    <td>Hello</td>
  </tr>
  <tr>
    <td>Hello</td>
    <td>Hello</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

这个jQuery代码:

$(function() {
    $("td:contains('Hello')").css('color','red');
});
Run Code Online (Sandbox Code Playgroud)

将所有单元格"Hello"变为红色.演示.

如果您需要不区分大小写的匹配,则可以使用以下filter函数执行此操作:

$(function() {
    var search = 'HELLO'.toLowerCase();
    $("td").filter(function() {
        return $(this).text().toLowerCase().indexOf(search) != -1;
    }).css('color','red');
});   
Run Code Online (Sandbox Code Playgroud)

如果您需要匹配单元格的确切内容,您可以使用类似于上面的内容:

$(function() {
    var search = 'HELLO'.toLowerCase();
    $("td").filter(function() {
        return $(this).text().toLowerCase() == search;
    }).css('color','red');
});
Run Code Online (Sandbox Code Playgroud)

以上是不区分大小写的(通过在比较时将搜索和内容都转换为小写),否则如果您想要区分大小写,则可以删除它们.演示.

  • 好吧,那么如果你的表中有什么:<td> Hello buddy </ td>?将要发生的事情是"Hello buddy"也会变成红色,但是如果你只想自己打开"Hello",那就完全匹配. (2认同)