Javascript 创建字符串中所有图像的数组的最佳方法是什么?
我希望创建一个HTML字符串中所有图像的数组 我尝试过使用以下内容,但如果src中不存在完整的URL路径,则会产生错误Javascript 创建字符串中所有图像的数组的最佳方法是什么?,javascript,jquery,Javascript,Jquery,我希望创建一个HTML字符串中所有图像的数组 我尝试过使用以下内容,但如果src中不存在完整的URL路径,则会产生错误 var found = $(html).find('img'); 试试这个: var imgArray = $('img'), srcArray = []; console.log(imgArray); // array of imgs $.each(imgArray, function() { srcArray.push(this.src)); });
var found = $(html).find('img');
试试这个:
var imgArray = $('img'),
srcArray = [];
console.log(imgArray); // array of imgs
$.each(imgArray, function() {
srcArray.push(this.src));
});
快速概述如何实现这一目标: 使用jQuery的DOM就绪函数打开->
$(function(){
创建包含元素集合的变量found
var found = $('p > img');
创建一个空数组来保存结果
var results = new Array();
遍历我们找到的每个元素
$.each(found, function(index,value){
对于我们找到的每个“值”(项),我们希望获取src,并将该src推送到数组中
results.push($(value).attr('src'));
alert('The src of the 3rd item is: '+results[2]); //3nd item in array, indexes are 0 based
错误关闭
});
警告阵列中的项目总数
alert('There is a total of '+results.length+' results in the Array.');
只通知src我们添加到数组中的第三项
results.push($(value).attr('src'));
alert('The src of the 3rd item is: '+results[2]); //3nd item in array, indexes are 0 based
错误关闭
});
希望这有助于澄清一些问题。通过创建一个“即时”html元素,您可以使用简单明了的JavaScript实现这一点:
var html = "<html><body><img src='/img1.png' /><br /><img src='/img2.png' /></body></html>";
var node = document.createElement("div");
node.innerHTML = html;
for(var i=0; i < node.children.length; i += 1) {
if (node.children[i].tagName === 'IMG') {
alert(node.children[i].src)
};
}
var html=“
”;
var节点=document.createElement(“div”);
node.innerHTML=html;
对于(变量i=0;i
那么这个字符串看起来像什么?错误是什么?字符串是一个标准的HTML页面。我收到的错误是“加载资源失败”。当源中不包含完整路径时,我似乎收到了这些错误。IE在css样式表中…以后如何处理found
呢?我在found
中循环,只挑选大于100像素的图像。如何将变量“html”传递给它html'是我需要搜索的字符串。@JorgeA.Gonzalez,你是在搜索字符串还是在搜索网页(即DOM)?这是我从回调函数返回的html字符串。你可以使用一些正则表达式来解析它。但我可能只是将HTML添加到一个隐藏的DIV中,按照我的指示提取图像,然后转储隐藏DIV的内容。这并不漂亮,但它完成了任务。我在/img1.png上加载资源失败。为什么我在搜索功能中会出现这些错误?JS正在验证它们吗?下面是我从输出数组“chrome”中得到的信息-extension://gabjcfmfiiglnojdinndihaijejbefem/img1.png“它预先设置了当前域,因此如果您位于chrome extensions页面,则这是正确的。如果不需要它,则拆分“/”并从数组中获取最后一个元素以获取文件名。this.src
比$(this.attr)(
src)更快,而且键入速度也更小代码>@RobG感谢您的评论:)