jQuery .each()函数问题

时间:2012-07-10 00:24:16

标签: jquery loops each

我使用jQuery的.each()函数解决了这个问题。 我想对我所拥有的表的行和列进行排序,我试图通过将名为'row'和'col'的属性添加到我的'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>

row属性在每个'td'标记上输出6。这是否意味着在触发任何第二个.each()循环之前执行第一个.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>

等...

如果有人能为我解决这个问题,我将不胜感激,因为我似乎无法解决这个问题。

1 个答案:

答案 0 :(得分:5)

试试这个

        $('tr').each(function(idx_row){
            $(this).children().each(function(idx_col){
                $(this).attr({'row':idx_row, 'col':idx_col});
            })
        });