13

JQuery を使用して、テーブル内のすべての TR を反復処理しています。

ただし、すべての行の最初のセルに値があるわけではありません。

<TR>
  <TD>3</TD>
  <TD>2</TD>
  <TD>1</TD>
</TR>
  <TD></TD>
  <TD>3</TD>
  <TD>2</TD>
<TR>
</TR>
<TR>
  <TD></TD>
  <TD></TD>
  <TD>3</TD>
</TR>

空ではなく、最初の子だけでなく、各行の最初の TD をターゲットにするにはどうすればよいですか?

ありがとう!

4

3 に答える 3

19

よりシンプルでエレガントなソリューションを次に示します。

$('tr').find('td:not(:empty):first').css('background', 'red');​

フィドル: http://jsfiddle.net/dandv/JRcEf/

jQueryでは、 「空ではないそれぞれの最初 のものをターゲットにする」と言っているだけです。tdtr

于 2012-11-11T11:54:19.583 に答える
1

tdこれは、 each 内の最初の空白でない子を見つけますtr:

$("tr").each(function() {
    var $firstNonEmptyCell;

    $(this).children("td").each(function() {
        var $td = $(this);
        if ($td.text() === "") {
            $firstNonEmptyCell = $td;
            return false; // Breaks `each` loop
        }
    });

    // ...use `$firstNonEmptyCell` here
});

または、空白以外のすべての jQuery ラッパーが必要な場合は、次の簡単な使用例ですfilter

$("tr").each(function() {
    var nonBlankCells = $(this).children("td").filter(function() {
        return $(this).text() !== "";
    });

    // Use `nonBlankCells` here
});
于 2012-11-11T11:47:40.330 に答える
0
var tds = [];

$('#tableId tr').each(function()
{
  $(this).find('td').each(function()
  {
    if ( $(this).html() != '' )
    {
      tds.push($(this));
      return false;
    }
  });
});

tdstdタグを取得した変数の出来上がり

于 2012-11-11T11:45:56.403 に答える