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>

値は、データベースによって動的に入力されます。各行の 2 番目の td の値が yes の場合、3 番目の td の値を「進行中」に変更するにはどうすればよいですか? ユーザーがテストを送信したため、値は yes ですが、テストは進行中であり、データベースが td3 に入力するまで td3 の値は none です。

私が使用したこの少しの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行ある可能性があり、テーブルの2番目のtdごとにこれを実行したいと思います

理想的にはスロバーが欲しいのですが、2 番目の td 値を解釈できれば可能になるはずです。

4

6 に答える 6

1

このコードは td を通過し、セルの値が「none」かどうかを確認し、「none」の場合は次のセルの値を「in progress」に設定します。

$(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

この例では、1 秒おきに td を行で処理し、値が「none」の場合、次のセルを「進行中」に置き換えます。

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

jsフィドル

于 2012-09-14T22:30:24.677 に答える
-1

each() でループを実行し、カウンターを実行して、カウンターが偶数か奇数かを毎回確認できます。

CSS-Tricks.com : 偶数か奇数かをチェック

ただし、それを行うためのより良い方法は確かにあります。

于 2012-09-14T22:27:14.767 に答える