0

我正在尝试使任何带有“RW”字符串的 TD 单元格都具有红色类。我需要使用 .on 因为网格有分页并重新加载新内容。我还需要使用每一个,因为可能有多个包含该字符串的 TD 单元格。

 $("#json-table").on("tbody tr td"){
 if ($(this).text() == 'RW').each({
 $(this).addClass('red'))};
4

4 回答 4

2

如果您不关心 中是否存在其他字符td,则可以使用选择器更直接地过滤到正确的单元格:contains

$('#element_id').on('click', function() {
    $('#json-table td:contains("RW")').addClass('red');
});

element_id您要分配单击事件处理程序的元素的 ID 在哪里。

于 2013-01-31T00:15:21.393 回答
1

你会想用.filter()这里来缩小你的集合,但没有更多信息,我们不能说从哪里调用它。请记住 jQuery 函数在整个集合上运行,这就是您想要的:

$("#json-table tbody tr td").filter(function() {
  return $(this).text() == 'RW';
}).addClass('red');

...你需要用你的分页代码来调用它。

编辑:因为您似乎正在使用 datatables.net,所以更完整的示例是:

$('#json-table').bind('sort filter page', function () {
  $("tbody tr td", this).filter(function() {
    return $(this).text() == 'RW';
  }).addClass('red');
});
于 2013-01-31T00:25:17.257 回答
0

.on().each()完全不同。.on() is used to attach an event其中.each() is used to iterate over objects or arrays.

试试这个

$("#json-table tbody tr td").each(function(){
       var $this = $(this);
    if($this.text().indexOf('RW') > -1)){
        $this.addClass('red');
    }|
});
于 2013-01-31T00:19:56.473 回答
0

.on用于处理元素触发的事件。查看文档以了解正确的用法。假设您要处理单击事件,语法如下所示。您提到该事件将被委派,因此您的使用必须与此签名匹配。

$("#json-table").on('click', "tbody tr td", function() {
    if ( $(this).text() == 'RW') ) {
        $(this).addClass('red');
    }
});

请注意,按原样,您.each被链接到if无效的 JS 语句。this已经引用了<td>您定位的正确元素。

于 2013-01-31T00:23:01.827 回答