我正在动态填充表格。如果某个条件适用,我想在当前tr
:
number = 3;
for (i = 0; i < 5; i++) {
var row = "";
row += "<tr><td>Test" + i + "</td></tr>"
$('#mytable').find('tbody:last').append(row);
if (i == number) {
$('#mytable').find('tbody:last').addClass("red");
}
}
不幸的是,该课程正被添加到所有tr
,而不仅仅是其中一个。
答案 0 :(得分:3)
$('#mytable tbody tr').eq(number).addClass('red');
请注意,提供给eq()
的索引是从零开始的。因此,传递3将选择第四个元素。
循环i
中的计数器也可以与条件运算符
row += "<tr" + (i === number ? ' class="red"' : '') + "><td>Test" + i + "</td></tr>"
// ^^ ================================ ^^
答案 1 :(得分:2)
我会试试这个:
number = 3;
for (i = 0; i < 5; i++) {
var row = $('<tr>');
if (i == number) row.addClass('red');
row.append($('<td>').html('Test'+i));
$('#mytable').find('tbody:last').append(row);
}
答案 2 :(得分:1)
将行创建为jQuery对象,以便对其进行引用。如果你的子句得到满足而不必再找到它,你可以简单地为它添加一个类。
EG:
var number = 3;
var $tbody = $('#mytable');
for (i = 0; i < 5; i++) {
var $row = $("<tr><td>Test"+i+"</td></tr>");// create the row as a jquery object so we have a reference to it
$tbody.append($row);// append it to the table
if (i == number) {// if your clause is met
$row.addClass("red");// add a classname
}
}
.red {color:red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="mytable">
</table>
答案 3 :(得分:0)
$('#mytable tbody:last tr:last').addClass("red");
这将选择最后一个tr并仅将类添加到最后一个tr(您刚刚附加)
答案 4 :(得分:0)
无需修改更多内容只需更换一件 find('tbody tr:last'),请在下面找到代码
number = 3;
for (i = 0; i < 5; i++) {
var row = "";
row += "<tr><td>Test" + i + "</td></tr>"
$('#mytable').find('tbody:last').append(row);
if (i == number) {
$('#mytable').find('tbody tr:last').addClass("red");
}
}
答案 5 :(得分:0)
您可以通过在构造HTML时直接添加类来完全避免使用addClass()
:
for (i = 0; i < 5; i++) {
var row = "";
var rowClass = (i == number) ? " class='red' " : "";
row += "<tr"+rowClass+"><td>Test" + i + "</td></tr>"
$('#mytable').find('tbody:last').append(row);
}
https://jsfiddle.net/0k9fazum/
否则Pointy指出你应该选择tr
而不是tbody
,而Tushar的回答演示了当tr
获胜时你如何通过索引选择特定:latest
& #39; t help。
答案 6 :(得分:0)
问题:$('#mytable')。find(' tbody:last ')。addClass(“red”);
解决方案:$('#mytable')。find(' tbody tr:last ')。addClass(“red”);
number = 3;
for (i = 0; i < 5; i++) {
var row = "";
row += "<tr><td>Test" + i + "</td></tr>"
$('#mytable').find('tbody:last').append(row);
if (i == number) {
$('#mytable').find('tbody tr:last').addClass("red");
}
}