如何在.each()中找到最后一项?

时间:2017-07-24 00:10:45

标签: javascript jquery

我正在运行以下内容但是我得到了

  

(index):58 Uncaught TypeError:jQuery.last不是函数

var myId; 
 jQuery.getJSON("https://en.wikipedia.org/w/api.php?action=query&list=embeddedin&eilimit=500&eititle=Template:Infobox&callback=?", {
    disablelimitreport: true,
    format: "json"
  }, function(data) {
    jQuery.each(data.query.embeddedin, function(i, item) {
    var $this = $(this);
    if($this[0] === jQuery.last()[0]) {
       var myId = item.pageid;
    }
    console.log(myId);
    });
  });

JsFidlle见控制台

3 个答案:

答案 0 :(得分:4)

只需获取元素的长度并将索引移回..试试这个。希望能在你身上发挥作用。

var myId; 
jQuery.getJSON("https://en.wikipedia.org/w/api.php?
action=query&list=embeddedin&eilimit=500&eititle=Template:Infobox&callback=?", {
   disablelimitreport: true,
   format: "json"
}, function(data) {
  jQuery.each(data.query.embeddedin, function(index, item) { 
     var length = data.query.embeddedin.length;
     if (index === (length - 1)) {
       var myId = item.pageid;
       console.log('The last pageid is : ' + myId);
     } 
  });
});

答案 1 :(得分:0)

您希望将每个函数中的第一个变量测试为数组的长度(但请记住,迭代器是从零开始的,需要从长度中减去一个):

No just import new settings...

答案 2 :(得分:0)

如果你想要的只是最后一个元素,那么就不需要对整个数组进行.each

检索数据后的所有内容都可以替换为单行:

var myId = data.query.embeddedin[data.query.embeddedin.length - 1].pageid

演示:



var myId;
jQuery.getJSON("https://en.wikipedia.org/w/api.php?action=query&list=embeddedin&eilimit=500&eititle=Template:Infobox&callback=?", {
  disablelimitreport: true,
  format: "json"
}, function(data) {
  myId = data.query.embeddedin[data.query.embeddedin.length - 1].pageid
  console.log(myId);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;