Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript XML节点打印两次_Javascript_Xml_Dom - Fatal编程技术网

Javascript XML节点打印两次

Javascript XML节点打印两次,javascript,xml,dom,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>URL

下面是我的代码:

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>

这里是URL1
这里是ID1
URL2在这里
ID2在这里
现在,当我在上面发布的代码中运行时,每个url将发布两次(总共4个url,应该是2个)。因此,对于通过“image”标记的每个循环,它都会在一个image节点下的XML中发布所有url标记。我似乎找不到如何确保它只打印来自当前节点的url。在此方面的任何帮助都将不胜感激

谢谢

jQuery('url',xml).text() 
选择所有url节点-因此您为所有图像节点写入所有url节点。

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

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

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

您的数据结构正常。只要把它包起来就可以了;-)谢谢你们,我做得有点像菲利克斯说的。这是我用来提取我所在的当前图像节点的url的方法:var url=$(This.children('url').text();这会给我当前图像标签的url!