我的表中有以下行结构:
<tr class="mattersRow">
<td></td>
<td colspan="16">
<div class="dropdown">
<a href="#" data-toggle="dropdown">Choose QB</a>
<ul class="dropdown-menu" aria-labelledby="dLabel" role="menu"> … </ul>
</div>
</td>
</tr>
注意:我使用bootstrap库
我需要将每个<td>
设置为“”(空)或“选择QB”类=“危险”。
这是我的jQuery代码:
$("#tblMatters .mattersRow td").each(function () {
if ($(this).html() == "" || $(this).innerHTML == "Choose QB")
{
$(this).addClass("danger");
flag = true;
}
});
当然,$(this).html() == ""
效果很好,但如何使用选择QB
<td>
答案 0 :(得分:3)
addClass
接受一个函数作为参数,在该函数中,您可以访问当前迭代的td
元素,并可以检查它包含的内容:
$("#tblMatters .mattersRow td").addClass(function() {
var txt = $.trim( $('a', this).text() );
return txt.length === 0 || txt == 'Choose QB' ? 'danger' : '';
});
如果您只是想检查锚点内的文本,您应该在问题中指明它吗?
答案 1 :(得分:3)
您可以使用:contains()
doc 和:empty
doc 选择器:
$('#tblMatters .mattersRow')
.find('td:contains(\'Choose QB\'),td:empty')
.addClass('danger');
答案 2 :(得分:1)
$(this).closest('td').addClass("danger");
$("#tblMatters .mattersRow td").filter(function () {
var txt = $.trim($(this).text());
return txt.length === 0 || txt === 'Choose QB';
}).addClass("danger");
或检查锚标记的文本
$("#tblMatters .mattersRow td a").filter(function () {
var txt = $.trim($(this).text());
return txt.length === 0 || txt === 'Choose QB';
}).closest('td').addClass("danger");
<小时/> 这应该适用于
$("#tblMatters .mattersRow td a").filter(function () {
var txt = $.trim($(this).text());
return $(this).closest('td').text().length === 0 || txt === 'Choose QB';
}).closest('td').addClass("danger");
答案 3 :(得分:1)
使用$(this).text().trim() === 'Choose QB'