我有两个包含文本SUM的描述,但有一个是粗体的( SUM ,另一个不是(SUM))。我想得到td:eq(5),它的描述包含没有b-tag的SUM。
HTML是动态生成的,所以我不能放任何ID,类等等。
这是我的代码(它为我提供了两个和字段的绿色背景):
$('#someTable tr').each(function () {
var tr = $('#someId').closest('tr');
var tdSum = $(tr).find('td:contains("SUM")');
$(tdSum).closest('tr').find('td:eq(5)').css('background-color', 'green');
});
我希望你明白我要做的事。
答案 0 :(得分:0)
首先,tr
已经可用作当前循环项目。要选择包含文字td
但不包含SUM
标记的b
,请按照指示使用下方的选择器。然后应用格式:
$('#someTable tr').each(function () {
var tr = $(this);
var tdSum = $(tr).find('td:contains("SUM"):not(:has(b))').css('background-color', 'green');
});
答案 1 :(得分:0)
如果您执行each()
,建议您使用$(this)
。
$('#someTable tr').each(function () {
if($(this).find('td:contains("SUM")').length > 0){
$(this).find('td:eq(5)').css('background-color', 'green');
}
});
答案 2 :(得分:0)
尝试使用.not()并且必须使用b标记过滤出td
.not(':has("b")')
或过滤掉元素的过滤功能
$(tr).find('td:contains("SUM")').filter(function(){
return $('b',this).length == 0;
});