javascript - .eq(i) i 未定义但有效吗?
问题描述
一切正常,但我试图理解为什么。我正在从 wordpress 的 RSS 提要中解析项目并将它们添加到名为“新闻”的 3 个单独的列 div 中。这是我的代码
var urls = ['https://domain.xyz/feed1', 'https://domain.xyz/feed2','https://domain.xyz/feed3'];
$.each(urls, function(i,u){ // for each wordpress news feed url
$.ajax(u,{
type: "GET",
dataType: "xml",
success: function(xml) {
var limit = 1;
$(xml).find('item').each(function(index) { // for each item entry in each of the rss categories, show only 1 entry
if (index < limit) {
var title = $(this).find('title').text();
var url = $(this).find('link').text();
var pubDate = $(this).find('pubDate').text();
var desc = $(this).find('description').text(); // converts xml description to a string
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(desc, "text/html"); // convert desc into document
var imgURL = xmlDoc.querySelector("img"); // target the image element
var alt = imgURL.alt;
// srcset not supported in IE so use src
// example xml item <img width="300" height="168" src="https://news.csudh.edu/wp-content/uploads/2018/12/Professor-Karen-Wilson-300x168.jpg">
// eq(i) traverses news elements and select i index
$(".news").eq(i).html('<a href="' + url + '" class="no-dec"><img class="newsImage" src="' + imgURL.src.replace("-300x168","") + '" title="' + title + '" alt="' + alt + '"></a><div class="news-text-area"><div class="newsHeadline"><a href="' + url + '" class="no-dec">'+ title +'</a></div><a href="' + url + '" class="read-more-link">READ MORE</a></div>');
return;
}
}); //end each
}
});
});
$(".news").eq(i)
即使控制台日志返回i is not defined.
唯一使用 i 的地方是作为每个函数外部的参数并且没有在任何地方定义,我仍然坚持为什么工作。
解决方案
推荐阅读
- php - 无法更新现有客户的订阅数量
- python - Python beautifulsoup - 获取输入值/TypeError:'NoneType' 对象不可下标
- codeigniter-3 - CI,如何从数据库中获取多个 id 的数据调用?
- angular - 刷新 JWT 令牌后返回重新调用
- c# - Windows 10 toast 通知图标引用
- google-sheets - Google 表格中的最大列数是多少?
- javascript - 如何删除光标前的值 - React
- java - 如何在共享首选项中保存按钮状态?
- r - R:使用 dplyr 重命名因子的级别
- angular - 为什么我必须在数据加载之前点击?