我正在运行以下内容但是我得到了
(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见控制台
答案 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;