我的javascript循环返回xml有什么问题?

我的javascript循环返回xml有什么问题?,javascript,xml,Javascript,Xml,我的循环有点问题,因为它一次返回所有的名称、链接、图像和内容,而不是单独通过evey事件循环 var items=xml.getElementsByTagName'event'.length; //警报项目; 变量名称、链接、图像、内容; 对于var i=0;i

我的循环有点问题,因为它一次返回所有的名称、链接、图像和内容,而不是单独通过evey事件循环

var items=xml.getElementsByTagName'event'.length; //警报项目; 变量名称、链接、图像、内容; 对于var i=0;i<项目;i++{ //警报“在循环中”; name=$xml.find'name'。文本; link=$xml.find'url'。文本; image=$xml.find'image'。文本; content=$xml.find'content'。文本; $'headername' .append+name+''+内容 +“

更多信息请访问:”+name+; }
问题是$xml.find'el返回每次通过循环找到的第一个元素,而您希望在第n次迭代中找到第n个元素

请尝试以下方法:

for (var i = 0; i < items; i++) {
    name = $(xml).find('name').eq(i).text();
    //                        ^^^^^^
    // ...
}

你说回来是什么意思?您得到的结果与预期的结果有何不同?因为当前有3个“事件”,它返回变量名称+名称+名称+链接+链接+链接+链接等。我明白了,不是名称+链接+图像+内容+名称+链接+图像+内容等。问题是$xml.find'el'返回每次通过循环找到的第一个元素-它知道您希望第n个元素通过循环的一部分。您能给我一个例子吗?Cameron,eq来自哪里?我现在有点困惑,sorry@Johann:来自jQuery,我可能错误地认为您使用jQuery是因为$function。我想我可以更清楚地说:你的循环很好,除了在循环的第一次迭代中没有得到名字/图像/url元素,在第二次迭代中没有得到第二个集合等等,你得到的第一个元素就是find在每次迭代中所做的:-这有帮助吗?是的,这正是发生的事情。我很理解你的例子,但我对jquery和Javascript还不熟悉,所以.eq完全把我甩了:它可能很简单,但对我来说很沮丧,因为我已经为此挣扎了两天:@Johann:I misspoke。find返回数组中与选择器匹配的所有元素。文本将所有文本连接在一起。您需要从返回的数组中选择一个元素,即第i个元素。eq就是这样做的——它只是从数组中选择具有给定索引的元素,并将其转换为jQuery元素。你可以在浏览器的控制台上玩这些东西,看看F12在Chrome:$'ab'中发生了什么。查找'a'。eq1.text=>b.YAY!那真有魅力!谢谢你的解释和帮助。
.append('<h3>' + escape(name) +  /* ... */ );