我正在尝试使用Javascript和jQuery库来抓取数据。
到目前为止一切顺利。我能够从标签之间抓取数据。例如,我想从<li>
标签获取数据,我这样做如下:
stuff_found = $(data).find('li');
但是,如果我尝试使用以下代码从<img>
标记获取src,则只返回第一个图像。
stuff_found = $(data).find('img').attr();
我需要知道如何返回完整列表(页面上的每个图像),而不仅仅是第一行。
答案 0 :(得分:3)
最简单的方法是编写图像选择器以仅获取<li>
标记内的那些。然后,您可以使用.each()
遍历它们,或者如果您真的只需要图片src
属性值.map()
。例如:
var imageList = $('li img').map(function()
{
return $(this).attr('src');
}).get();
在代码示例中,会发生这种情况:
<li>
个标记内的所有图片 - $('li img')
部分。.map()
应用函数来遍历所有这些函数并提取值。基本上.map()
所做的是它采用一个列表,将给定的函数应用于列表的所有元素,并返回带有新处理元素的结果列表。$(this).attr('src')
部分会从图片代码中获取实际src
值。.get()
- 这就是将返回的对象从jQuery数组转换为标准数组。答案 1 :(得分:0)
页面上的每个图片 ..?
$('li img').each(function(){
var src = $(this).attr('src');
});
或者获取它们的列表 -
var list = $('li img').map(function() {
return $(this).attr('src');
}).get();
答案 2 :(得分:0)
$('img').each(function(){
alert($(this).prop('src'));
});