2

我有一个类似的表,但有很多行:

<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,我如何将第三个 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 行,我想为我表中的每个 2nd td 执行此操作

理想情况下,我想要一个 throbber,但一旦我可以解释第二个 td 值,这应该是可能的。

4

6 回答 6

1

此代码将通过 td,查看单元格是否具有值“无”,如果是,则将下一个单元格的值设置为“进行中”:

$(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");
        }
    });
});
于 2012-09-14T22:23:05.207 回答
0
$('table tr').each(function(){
    $('td:eq(1):contains(yes)', this).next().text('in progress')
})

http://jsfiddle.net/CYdVs/

于 2012-09-14T22:23:10.700 回答
0

试试这个

$('#mytable td').each(function() {
    var html = $(this).html();
    if(html === 'none'){
        $(this).next('td').text('in progress');
}
});

见工作小提琴

于 2012-09-14T22:24:01.307 回答
0

检查这个小提琴

$(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..');
        }
    });
});​
于 2012-09-14T22:26:59.707 回答
0

此示例将遍历每一行中的第二个 td,如果值为“无”,则将下一个单元格替换为“进行中”:

$("#mytable td:nth-child(2)").each(function(index, elem)
{
    if($(elem).html() === "none")
    {
        $(elem).next().html("in progress")
    }
});​

jsFiddle

于 2012-09-14T22:30:24.677 回答
-1

您可以使用 each() 运行一个循环,使用它运行一个计数器并检查每次计数器是偶数还是奇数。

CSS-Tricks.com : 检查是偶数还是奇数

不过,肯定有更好的方法来做到这一点。

于 2012-09-14T22:27:14.767 回答