-1

td特定の行からすべての s を取得しようとしています。

コードは次のとおりです。

$(window).scroll(function () {
  var widthArray = new Array();
  var i=0;
  $('#firstRow > td').each(function () {
    var tdclass = $('td').attr('class');
    console.log(tdclass);
    widthArray.push(tdclass);
    i=i+1;
  });
});

ただしtd、反復するのではなく、最初に停止します。

更新:i変数は別の機能用です。

4

2 に答える 2

1
$('#firstRow > td')

正解です。上記のスニペットは、要素td内にあるすべての を選択し#firstRowます。

問題はループにあります。

var tdclass = $('td').attr('class');

ここではtd、ループしている選択済みを無視しtd、ページに存在するすべての を選択します。それが関数の$('td')機能です。

jQuery を使用する場合、ループ コールバックは要素をパラメータとして、またコンテキスト ( this) として受け取ります。$.fn.eachを参照してください。

問題を解決するには:

$('#firstRow > td').each(function (index, element) {
    var tdclass = $(element).attr('class');
    // ...
});
于 2013-03-01T08:32:56.773 に答える
1

<td>のセットの最初の要素のクラスを取得する各反復$('td')。構成をよりエレガントに変更できます。

$(window).scroll(function() {
    var widthArray = $("#firstRow > td").map(function() {
            return this.className;
        }).get(),
        i = widthArray.length;

    // ...
});
于 2013-03-01T08:34:14.200 に答える