0

jQuery の .each() 関数を使用してこの問題が発生しました。私が持っているテーブルの行と列を並べ替えたいのですが、「行」と「列」という名前の属性を「td」タグに追加して実行しようとしています。

基本的に私のコードは次のようになります。

$('tr').each(function(tr_index) {
    $('td').each(function(td_index) {
        $(this).attr({
            'row' : tr_index,
            'col' : td_index,
        });
    });
});

しかし、これにより次の出力が得られます。

<td row="6" col="0"></td>
<td row="6" col="1"></td>
<td row="6" col="2"></td>
<td row="6" col="3"></td>
<td row="6" col="4"></td>
<td row="6" col="5"></td>
<td row="6" col="6"></td>

行属性は、「td」タグごとに 6 を出力します。これは、最初の .each() ループが 2 番目の .each() ループのいずれかが起動される前に実行されることを意味しますか?

これをどのように変更して、次のようなものにするかについてのアイデア:

<td row="0" col="0"></td>
<td row="0" col="1"></td>
<td row="0" col="2"></td>
<td row="1" col="0"></td>
<td row="1" col="1"></td>
<td row="1" col="2"></td>
<td row="2" col="0"></td>

等...

頭を包むことができないように見えるので、誰かがこの問題の解決策を持っていればありがたいです。

4

1 に答える 1

5

これを試して

        $('tr').each(function(idx_row){
            $(this).children().each(function(idx_col){
                $(this).attr({'row':idx_row, 'col':idx_col});
            })
        });
于 2012-07-10T00:37:24.427 に答える