我有一些divs
具有相同的班级名称。我拨打了jQuery
each()
电话。我需要检查这个each()
循环的最后一个操作(在Operation 4
文本div执行时)。这是代码 -
jQuery('.selected-div').each(function () {});
<div id="Message area">
<div class="selected-div">
Operation 1
</div>
<div class="selected-div">
Operation 2
</div>
<div class="selected-div">
Operation 3
</div>
<div class="selected-div">
Operation 4
</div>
</div>
答案 0 :(得分:2)
如果你想在上次执行循环时做一些不同的,你至少有几个选择:
将jQuery对象保存到变量中,然后在each
循环中,检查当前迭代对.length - 1
的索引:
var divs = jQuery('.selected-div');
divs.each(function(index) {
if (index === divs.length - 1) {
// Last iteration
} else {
// Not last
}
});
将最后一个操作移动到一个单独的函数中:
jQuery('.selected-div').slice(0, -1).each(function() {
// Not the last
}).end().last().each(function() {
// Last
});
在那里,我们使用slice
获取除最后一个元素之外的所有元素,然后each
循环遍历它们,然后end
以获取完整的元素集,然后{{3只获取最后一个,并each
调用一个函数,并将其传入。
答案 1 :(得分:0)
我的建议是:
var lastEle = $('.selected-div').last().get(0);
$('.selected-div').each(function (index, element) {
if (element === lastEle) {
do your action
}
});
答案 2 :(得分:0)
您可以为最后一个元素创建一个占位符。
的JavaScript
var placeHolder;
$('.selected-div').each(function () {
// your code
// append $(this) to placeHolder
placeHolder = $(this);
});