从xml文件中获取所有img标记(jquery)
我有以下xml文件从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
<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();