我有一个类似于此的表,但有很多行:
<table width=400px id=mytable>
<tr>
<td>test one</td>
<td>yes</td>
<td>success</td>
</tr>
<tr>
<td>test two</td>
<td>yes</td>
<td>none</td>
</tr>
</table>
值由动态填充数据库。如果每行中的第二个td的值为yes,那么如何将第3个td的值更改为“正在进行中”?值为yes,因为用户已提交测试但测试正在进行中,并且td3的值为none,直到数据库填充td3。
我已经使用了这个jquery,但是它只是搜索和替换基于单元格的文本,而不是说下一个单元格。
$(function() {
$('#mytable td').each(function() {
var html = $(this).html();
$(this).html(
html.replace(/0/,'<b>success</b>')
.replace(/1/,'<b>failed</b>')
);
});
});
我也一直在玩这个代码,但这不符合我想做的事情,因为它只根据.eq(x)位置更新某些TD。
$(document).ready(function() {
$('#mytable').find('td').eq(4).text('changeme');
});
我的桌子可能有大约20行,我想在我的表格中的每个第二个td执行此操作
理想情况下,我想要一个悸动,但是一旦我能解释第二个td值,这应该是可能的。
答案 0 :(得分:1)
此代码将遍历td,查看单元格是否具有值'none',如果是,则将下一个单元格的值设置为“正在进行”:
$(function() {
$('#mytable td').each(function() {
var html = $(this).html();
if (html == "none")
$(this).next().html("in progress");
});
});
根据以下评论更新了代码:
$(document).ready(function() {
$('td').each(function() {
if ($(this).html() == "yes" && $(this).next().html() == "none") {
$(this).next().html("in progress");
}
});
});
答案 1 :(得分:0)
$('table tr').each(function(){
$('td:eq(1):contains(yes)', this).next().text('in progress')
})
答案 2 :(得分:0)
试试这个
$('#mytable td').each(function() {
var html = $(this).html();
if(html === 'none'){
$(this).next('td').text('in progress');
}
});
见工作fiddle
答案 3 :(得分:0)
选中此Fiddle
$(function() {
var secondCells = $('tr').find('td:eq(1)');
console.log(secondCells)
$.each(secondCells, function(i) {
if( $(this).text() == 'none'){
console.log($(this).next())
$(this).next().text('Processing..');
}
});
});
答案 4 :(得分:0)
此示例将遍历行中的每秒td,如果值为“none”,则将下一个单元格替换为“正在进行中”:
$("#mytable td:nth-child(2)").each(function(index, elem)
{
if($(elem).html() === "none")
{
$(elem).next().html("in progress")
}
});
答案 5 :(得分:-1)