首页 > 解决方案 > .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 的地方是作为每个函数外部的参数并且没有在任何地方定义,我仍然坚持为什么工作。

标签: javascriptjqueryloops

解决方案


推荐阅读