我想建立一个列表。没问题。
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项都有类。
有关如何找到这个的任何建议吗?
谢谢!
答案 0 :(得分: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');
}
}
答案 1 :(得分:1)
i
永远不等于7
,因为循环在i < 7
答案 2 :(得分:0)
答案 3 :(得分: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
元素的引用,而不是在每次迭代时重新选择它。)
答案 4 :(得分:0)
这是他我将如何做到的:
var $domid = $( '#domid' );
for ( var i = 0; i < 7; i+= 1 ) {
$domid.append( variable.clone() );
}
$domid.children( ':last' ).addClass( 'last' );