3

重複の可能性:
要素内の要素を見つける方法

各テーブル行を通過するためにループを実行しています。各テーブル行内の要素にアクセスしたいと思います。どうすればよいですか?

テーブル:

<table>
<tr> <td class="a">x</td> <td class="b">x</td> <td class="c">x</td> </tr>
<tr> <td class="a">x</td> <td class="b">x</td> <td class="c">x</td> </tr>
<tr> <td class="a">x</td> <td class="b">x</td> <td class="c">x</td> </tr>
<tr> <td class="a">x</td> <td class="b">x</td> <td class="c">x</td> </tr>
</table>

コードが機能しない:

$("tr").each(function(index) {

    // get class a text
    $(this + " td.a").text();

    // get class b text
    $(this + " td.b").text();

    // get class c text
    $(this + " td.c").text();

});
4

6 に答える 6

8

children次の方法を使用できます。

$("tr").each(function(index) {

    // get class a text
    var text1 = $(this).children("td.a").text();

    // get class b text
    var text2 = $(this).children("td.b").text();

    // get class c text
    var text2 = $(this).children("td.c").text();

});
于 2012-05-15T15:43:49.627 に答える
6

jQuery関数の2番目のパラメーターはコンテキストです:

$("td.a", this).text();

これにより、内にあるすべてのtd.a子孫が検索されますthis

于 2012-05-15T15:44:57.627 に答える
3

「通常」(つまり、jQueryを使用せずに)アクセスしていた場合は、cellsプロパティを取得できます。

var trs = document.getElementsByTagName('tr'), l = trs.length, i, tds;
for( i=0; i<l; i++) {
    tds = trs[i].cells;
    // do stuff with tds
]
于 2012-05-15T15:44:29.860 に答える
3

複数回呼び出す必要がある場合は$(this)、パフォーマンスを向上させるためにローカル変数に割り当てる必要があります。詳細については、この投稿を参照してください。

jQueryの$thisと$(this)

最後に、.find()達成しようとしていることに使用できます。

$("tr").each(function(index) {

    var $this = $(this);

    // get class a text
    $this.find("td.a").text();

    // get class b text
    $this.find("td.b").text();

    // get class c text
    $this.find("td.c").text();

});
于 2012-05-15T15:45:15.177 に答える
1
$("tr").each(function(index) {

    // get class a text
    $("td.a", this).text();

    // get class b text
    $("td.b", this).text();

    // get class c text
    $("td.c", this).text();

});
于 2012-05-15T15:46:35.767 に答える
0
$("tr").each(function() {
    var $this = $(this),
        aText = $this.find('.a').text(),
        bText = $this.find('.b').text(),
        cText = $this.find('.c').text();
});
于 2012-05-15T15:45:07.113 に答える