jQuery找到一个类并为其最后一个元素创建回调

时间:2016-05-26 10:49:42

标签: javascript jquery

' jQuery'我可以像这样对所有类的元素执行回调 -

jQuery(form_id).find(".multiple_upldprev").each(function () {

但我想只执行该类的最后一个元素。我试过这种方式 -

jQuery(form_id).find(".multiple_upldprev").last(function () {

它不起作用。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

last()会将匹配元素集合减少到集合中的最后一个元素。它确实采取处理程序。您可以使用:

$(...).last().each(function() {

});

这通常没有意义,因为.last()只返回元素:

var $lastElement = $(...).last();
// Do something with $lastElement

如果你有一个预定义的处理程序,每个都可能有意义:

$(...).last().each(myHandler);
// The same can roughly be archived with:
myHandler.call($(...).get(-1));

答案 1 :(得分:0)

你不需要回复事件。

由于您只对在最后一个元素上执行函数感兴趣,您可以使用自执行函数变量中的最后一个元素来执行此操作。

(function(){
  var $last = jQuery(form_id).find(".multiple_upldprev").last();
  // now use this $last 
})();

或者由于某种原因你想使用回调来使用每个回调但仍然只对最后一个元素执行回调函数,那么你可以在 .is() 的帮助下完成这个.. < / p>

jQuery(form_id).find(".multiple_upldprev").each(function () { 
  var isLastElement = $(this).is(".multiple_upldprev:last"); //return true only for last element in loop
  if(isLastElement ){
   //execute your logic for last element
  }
});