我有很多同一类“first”
我试过了:
var mailHeadding = $('.first');
$.each(mailHeadding, function (indx) {
if (indx == mailHeadding.length) {
mailHeadding[indx].removeClass('first').addClass('last');
}
else if (indx != 0) {
mailHeadding[indx].removeClass('first');
}
});
mailHeadding[indx]
替换为"this"
这仍然不起作用。
答案 0 :(得分:4)
$('.first:gt(0)').removeClass('first').last().addClass('last');
这使用the greater than selector来获取.first
类的所有元素都大于提供的从零开始的索引(在本例中为0
,意思是第一个)。
然后uses .removeClass()
从中删除first
类,uses .last()
跳转到最后一个,uses .addClass()
添加last
类。
答案 1 :(得分:1)
试试这个:
$('.first').slice(1)
.removeClass('first')
.last().addClass('last');
要解释这里发生了什么:
first
类slice()
方法选择除选择removeClass()
方法从这些元素中删除first
类。last()
方法仅选择选择中的最后一个元素addClass()
方法将last
类添加到此元素。答案 2 :(得分:1)
if (indx == mailHeadding.length)
这是你的问题。索引介于0
和length - 1
之间(包括)。因此,如果长度为5
,则indizes为0, 1, 2, 3, 4
。因此,您的比较永远不会产生true
。您必须与length - 1
进行比较。
答案 3 :(得分:0)
$('.<classes>:first-child').addClass('first');
$('.<classes>:not(:first-child)').removeClass('first');
$('.<classes>:last-child').addClass('last');
总结了如何使用jquery来解决这个问题