2

同じ行の他の td にアクセスして td 要素を埋めたい。jQueryを使用してそれらにアクセスするにはどうすればよいですか?

私の状況では、テーブルがあり、列 5 は列 4 から列 3 を減算し、結果を列 5 に返すことによって入力されます。ネストされたループでそれを開始しましたが、.each を使用すると() 各列 5 td で、jQuery を使用して列 3 と 4 を識別できれば達成可能です。

これがフィドルです。

要素を識別するセクションは次のとおりです。

$('section.techtable td:nth-child(5)').each(function() {
    $(this).append(strinToMonthNumber($(START JQUERY),$(END JQUERY)));
})

$(this) の親にアクセスし、次に (3 番目と 4 番目) の子要素にアクセスする必要があると思いますか?

また、TH または TD 要素でスパンまたはクラス属性を使用しないようにしています。

4

2 に答える 2

3

1 つの要素 (この場合はテーブル セル)を選択し、jQuery.prev()またはjQuery.next()を使用して前または次の兄弟要素を選択できます。ネイティブ DOM では、同じ目的でpreviousSibling/ nextSibling(または最新のブラウザーでは非要素ノードをスキップするために /) 要素プロパティをpreviousElementSibling使用できます。nextElementSibling

コード例に基づいて、次のようになります。

$('section.techtable td:nth-child(5)').each(function() {
    var cell5 = $(this),
        cell4 = cell5.prev(),
        cell3 = cell4.prev();

    cell5.append(strinToMonthNumber(cell3, cell4)));
})
于 2012-06-10T21:40:44.663 に答える
1

これを試して:

$('section.techtable tr').each(function() {
    var $cells = $(this).find("td");
    var val = strinToMonthNumber($cells.eq(2).text(),$cells.eq(3).text());
    $cells.eq(4).text(val);
});

セルインデックスは原点がゼロであるため、3/4/5より1つ少ないことに注意してください。すでにゼロオリジンを考慮している場合は、いずれの場合も+1します。

于 2012-06-10T22:46:10.410 に答える