Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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
从xml文件中获取所有img标记(jquery)_Jquery_Xml - Fatal编程技术网

从xml文件中获取所有img标记(jquery)

从xml文件中获取所有img标记(jquery),jquery,xml,Jquery,Xml,我有以下xml文件 <gallery> <album title="test" description="test" lgPath="/images/commphotos/"> <img src="1130975173.jpg" /> <img src="1475634985E.jpg" /> <img src="1889677107.jpg" /> <img src="1356256436.jpg

我有以下xml文件

<gallery>
<album title="test" description="test" lgPath="/images/commphotos/">
    <img src="1130975173.jpg" />
    <img src="1475634985E.jpg" />
    <img src="1889677107.jpg" />
    <img src="1356256436.jpg" />
    <img src="834682273.jpg" />

</album>
</gallery>

我一直在尝试使用jquery来读取它,以获取每个img标记。
最好的方法是什么?

只需像对待其他文档一样对待XML文档:

$(xml).find('img');
更新:这将为您提供一个jQuery对象,其中包含作为DOM元素的所有标记。比如说,若您想要一个标签数组作为字符串,它会变得更复杂:

var tarr = [];
$(xml).find('img').each(function() {
    tarr.push( $(this).clone().appendTo('<div/>').parent().html() );
});
$(xml).find('img').attr('src')

使用该函数,您可以轻松地将那些
img
的所有
src
属性放入Javascript数组中。当然,您也可以使用
.each()
,但这种方式更加优雅

var srcArray = $(xml).find('img').map(function () {
    return this.src;
}).get();


在我的示例中,
.get()
用于从返回的jQuery对象创建一个简单数组。

但没有越界;)他说他想“去掉每个img标签”。没有说任何关于属性的内容。我这样做了,但它只是返回一个对象。如何读取每个对象?@user719316首先,请告诉我们“读取”是什么意思。您想要
src
属性,还是整个标记,或者其他什么?您是希望每个
img
标记都同时使用这个,还是一次使用一个?最好是我拥有整个标记。这将仅返回第一个
img
src
,而不是所有标记。返回所有标记将毫无意义。我应该构造一个数组来存储src吗?哦,等等,这就是xml已经在做的事情。这个答案向OP展示了如何访问信息的核心。一旦你知道如何获取一个src,迭代其余的项并做一些事情就变得很简单了。我总是忘记
.map()
方法,可能是因为我总是发现它比自己构建数组更难阅读。好主意。@mblase75就我个人而言,我觉得它比
可读性强得多。为此,each()
,但不会就口味争论:)。
var srcArray = $(xml).find('img').map(function () {
    return this.src;
}).get();