XML节点打印两次

时间:2013-07-11 12:13:54

标签: javascript xml dom

下面是我的代码:

function widget_itemAddCallback(carousel, first, last, xml)
{   
    jQuery('image', xml).each(function(i){  
        document.write(jQuery('url',xml).text())
    });
...
};

这循环通过我发送给函数的XML文件。 XML文件的构建如下:

<image>
   <url>URL1 HERE</url>
   <id>ID1 HERE</id>
</image>
<image>
   <url>URL2 HERE</url>
   <id>ID2 HERE</id>
</image>

现在,当我在上面发布的那段代码中运行时,网址将分别发布两次(总共4个网址,应为2)。因此,对于通过'image'标记的每个循环,它将在图像节点下发布它可以在XML中找到的所有url标记。我似乎无法找到如何确保它只打印当前节点的URL。任何有关这方面的帮助将不胜感激!

谢谢!

2 个答案:

答案 0 :(得分:0)

jQuery('url',xml).text() 

选择所有url节点 - 这样就可以为所有图像节点编写所有url节点。

答案 1 :(得分:0)

jQuery('url',xml)将选择文档中的所有url元素。

由于您对图片元素进行了迭代,因此您只需要当前图片的url元素,该元素可通过this访问:

jQuery(this).find('url').text();

DEMO