Javascript 创建字符串中所有图像的数组的最佳方法是什么?

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)); });

我希望创建一个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));
});

快速概述如何实现这一目标:

使用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实现这一点:

  • 创建一个元素
  • 将字符串作为innerHTML插入
  • 查询节点
  • 例如:

    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感谢您的评论:)