3

我想建立一个列表。没问题。

for (i = 0; i < 7; i++) {
    $('#domid').append(variable.clone());
}

如何获取列表中的最后一项(在本例中为 i.7)并向其添加类?

for (i = 0; i < 7; i++) {
    $('#domid').append(variable.clone());

    if (i===7) {
        $('.domclass').addClass('last');
    };

}

但这行不通。当计数器达到 7 时,这只会使所有 .todo 项目都具有类。

关于如何找到这个的任何建议?

谢谢!

4

5 回答 5

7
$('.domclass:last').addClass('last');

或者,如果您想在循环中执行此操作(因此,正如评论者指出的那样,您不必遍历 DOM 即可再次访问该元素):

var newElement;

for(var i = 0; i < 7; i++){
    newElement = variable.clone();
    $('#domid').append(newElement);
    if(i === 6) {
        $(newElement).addClass('last');
    }
}
于 2012-05-14T23:57:32.457 回答
1

i从不等于7,因为循环运行 whilei < 7

于 2012-05-15T01:01:21.070 回答
0

eq()反向索引计数。

$('.domclass:eq(-1)');

http://api.jquery.com/eq/

于 2012-05-15T00:00:15.450 回答
0

一种方法是在循环中存储对克隆项目的引用:

var i,
    $item,
    $domid = $('#domid');

for (i = 0; i < 7; i++) {
    $item = variable.clone();
    $domid.append($item);
}

$item.addClass('last');

当循环结束$item时将是最后一个添加的。当然,这假设循环将始终运行至少一次迭代 - 如果迭代次数是可变的并且可能为零,您可以说:

if ($item) $item.addClass('last');

(请注意,我还存储了对#domid元素的引用,而不是在每次迭代时重新选择它。)

于 2012-05-15T00:05:12.220 回答
0

这是他我会怎么做的:

var $domid = $( '#domid' );

for ( var i = 0; i < 7; i+= 1 ) {
    $domid.append( variable.clone() );
}

$domid.children( ':last' ).addClass( 'last' );
于 2012-05-15T00:34:56.777 回答