我试图让任何带有“RW”字符串的TD单元都有一类红色。我需要使用.on,因为网格有分页并重新加载新内容。我还需要使用每个,因为可能有多个包含该字符串的TD单元格。
$("#json-table").on("tbody tr td"){
if ($(this).text() == 'RW').each({
$(this).addClass('red'))};
答案 0 :(得分:2)
如果您不关心td
中是否存在其他字符,则可以使用:contains
选择器更直接地过滤到正确的单元格:
$('#element_id').on('click', function() {
$('#json-table td:contains("RW")').addClass('red');
});
其中element_id
是您要分配点击事件处理程序的元素的ID。
答案 1 :(得分: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');
});
答案 2 :(得分: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');
}|
});
答案 3 :(得分:0)
.on
用于处理由元素触发的事件。查看文档以了解正确的用法。假设您要处理click事件,语法如下所示。您提到该活动将被委派,因此您的使用必须与此签名相符。
$("#json-table").on('click', "tbody tr td", function() {
if ( $(this).text() == 'RW') ) {
$(this).addClass('red');
}
});
请注意,您的.each
被链接到if
语句,这是无效的JS。 this
已经引用了您要定位的正确<td>
元素。