jQuery Selector帮助

Ces*_*sar 4 jquery css-selectors

...
<tr>
    <td>222</td>
</tr>
<tr>
    <td>333 222</td>
</tr>
...
Run Code Online (Sandbox Code Playgroud)

我有这个代码选择器:

$("#TableName tr td:contains('222')");
Run Code Online (Sandbox Code Playgroud)

问题:我需要选择html为'222'的单元格.
我尝试使用$("#TableName td tr[html=222]")但不起作用.

use*_*716 5

您可以改为使用.filter()完全匹配.

var result = $("#TableName tr td").filter(function() {
    return $.text([this]) === "222";
});
Run Code Online (Sandbox Code Playgroud)

这用于$.text()比较<td>with 的文本值"222".这只是一种更快捷的方式$(this).text().给你相同的结果.(请注意,您需要传入this一个数组[this].)

当匹配时,元素将返回到生成的jQuery对象中.

如果有中,前导或尾随空白的任何可能性<td>,你可以修剪是$.trim().

return $.trim( $.text([this]) ) === "222";
Run Code Online (Sandbox Code Playgroud)

编辑:您可以创建自己的选择器,如果您需要,将完成相同的任务:

$.extend($.expr[':'], {
    textIs: function(elem, i, attr) {
        return ($.trim( $.text([elem]) ) === attr[3]);
    }
});
var result = $("#TableName tr td:textIs(222)")
Run Code Online (Sandbox Code Playgroud)