将类添加到当前tr
Add class to current tr
我正在动态填充一个表。如果某个条件适用,我想在当前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
中,而不仅仅是其中的一个。
这是一把小提琴。
您可以使用.eq()
或:eq()
选择器
$('#mytable tbody tr').eq(number).addClass('red');
Fiddle演示
注意,提供给eq()
的索引是基于零的。因此,通过3将选择第四个元素。
循环i
中的计数器也可以与条件运算符一起使用
row += "<tr" + (i === number ? ' class="red"' : '') + "><td>Test" + i + "</td></tr>"
// ^^ ================================ ^^
Fiddle演示
我会试试这个:
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);
}
将行创建为jQuery对象,这样您就可以对其进行引用。然后,如果满足您的子句,您可以简单地向其中添加一个类,而不必再次查找它。
例如:
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>
$('#mytable tbody:last tr:last').addClass("red");
这将选择最后一个tr,并仅将类添加到最后一个tr(您刚刚附加的)
无需对此进行更多修改,只需替换一个find('body-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");
}
}
您可以通过在构建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的回答表明,当:latest
没有帮助时,你可以如何通过索引选择特定的tr
。
问题:$('#mytable').fund('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");
}
}
https://jsfiddle.net/shadiq_aust/Lan0fv36/4/
相关文章:
- 用Javascript添加带有#text的tr元素
- 如何将类添加到<tr>标记
- 如何在遍历表和添加新元素时获得tr的索引
- 将类添加到当前tr
- 添加<tr>元素到动态表,动态不刷新页面,php-jquery
- 如何在动态创建的tr标签表中添加合计
- 在表末尾动态添加TR
- 在数据表表和普通 DOM 表之间移动(添加/删除)tr 行
- 添加 tr 标签会导致函数停止工作
- j查询点击事件,用于在具有特定 ID 的表中动态添加 tr
- 如何在TR的最后一个TD中添加事件或将ID属性添加到IMG标签
- 在IE8中动态添加tr和td设计问题
- JavaScript添加和删除<tr>使用EventListener和jQuery
- 创建<td>动态地添加到<tr>
- jQuery仅将addClass添加到<td>其中父<tr>具有特定类别
- 添加&单击按钮时减去TR(ID+1)
- 将类添加到表中的 tr (JQuery)
- 将tr添加到table中使用javascript将一个新的tbody添加到html表中
- Ng-repeat for tr动态添加行
- 使用ajax向tr添加另一个页面后,表's列宽度发生变化