Javascript 如何找到js循环中的最后一项,以便向其中添加类?

Javascript 如何找到js循环中的最后一项,以便向其中添加类?,javascript,jquery,Javascript,Jquery,我想建立一个列表。没问题 for (i = 0; i < 7; i++) { $('#domid').append(variable.clone()); } (i=0;i

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

for (i = 0; i < 7; i++) {
    $('#domid').append(variable.clone());
}
(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');
    };

}
(i=0;i<7;i++)的
{
$('#domid').append(variable.clone());
如果(i==7){
$('.domclass').addClass('last');
};
}
但那是行不通的。这只会使所有的.todo项在计数器达到7时都具有类

关于如何找到这个有什么建议吗

谢谢

$('.domclass:last').addClass('last');
或者,如果您希望在循环中执行此操作(因此,正如评论员所指出的,您不必遍历DOM来再次访问元素):

var新元素;
对于(变量i=0;i<7;i++){
newElement=variable.clone();
$('#domid')。追加(新元素);
如果(i==6){
$(新元素).addClass('last');
}
}
eq()
具有反向负索引计数

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

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

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

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

$item.addClass('last');

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

这就是我的做法:

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

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

$domid.children( ':last' ).addClass( 'last' );
var$domid=$('#domid');
对于(变量i=0;i<7;i+=1){
$domid.append(variable.clone());
}
$domid.children(':last').addClass('last');

i
永远不等于
7
,因为循环在
i<7
@davemerewin时运行-不用担心。这是常有的事。还要记住,没有必要在循环中使用它。构建元素后只需一次调用。@JustinNiessner不必随后对该元素执行DOM查询,而是在创建该元素后立即添加该类。这就像写一封信,发送出去,然后取回以添加签名。看看贾斯汀·尼斯纳的答案。让我们使用我们得到的工具。@Madbreaks-我认为否决票有点苛刻,因为我的答案实际上并没有错。很明显,贾斯汀的答案是一个简单的方法,我已经对他的答案投了赞成票。但是这个问题并没有明确说明“.domclass”类是否还有其他元素,我的回答将专门针对新添加的元素,并且它避免了创建额外的jQuery对象(无可否认,在这个简单的例子中,这根本不重要,但在更复杂的情况下,这可能有助于提高性能)@Madbreaks这个答案显然比Justin的答案要好。很公平,否决票被删除了。我认为你是对的,太苛刻了。但一般来说,作为开发人员,我们应该使用我们提供的工具,而不是重新发明轮子,除非涉及到有限的性能问题。解决给定问题的方法是无穷无尽的,但通常是st方法不仅是得到正确答案的方法,也是最有效的方法。谢谢@Madbreaks。对于这个问题,我对这两种方法都没有强烈的偏好,但“有效”可以应用于写作(以及以后的阅读)在循环中执行DOM查询会导致灾难。
if ($item) $item.addClass('last');
var $domid = $( '#domid' );

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

$domid.children( ':last' ).addClass( 'last' );