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

时间:2012-04-16 02:46:33

标签: javascript jquery

我希望用HTML字符串创建一个包含所有图像的数组。

我尝试过使用以下内容,但如果src中没有完整的URL路径,则会产生错误。

var found = $(html).find('img');

4 个答案:

答案 0 :(得分:0)

$("img").each(
      function(index) {
         theArray.push( $(this).attr("src") );
      });

答案 1 :(得分:0)

试试这个:

var imgArray = $('img'),
    srcArray = [];

console.log(imgArray);  // array of imgs

$.each(imgArray, function() {
   srcArray.push(this.src));
});

答案 2 :(得分:0)

快速了解如何实现这一目标:

使用jQuery的DOM Ready函数打开 - >

$(function(){

创建包含元素集合的变量found

  var found = $('p > img');

创建一个空数组来保存我们的结果。

  var results = new Array();

遍历我们found

的每个元素
  $.each(found, function(index,value){

对于我们找到的每个'value'(项目),我们想要获取src,并将该src推送到数组中。

   results.push($(value).attr('src'));     

错误关闭

   });

提醒数组中的项目总数;

  alert('There is a total of '+results.length+' results in the Array.');

警告我们添加到数组中的第3项的src。

  alert('The src of the 3rd item is: '+results[2]); //3nd item in array, indexes are 0 based

错误关闭

});

希望这有助于澄清一些事情。

答案 3 :(得分:0)

您可以通过创建“即时”html元素,使用简单明了的JavaScript来实现这一点:

  1. 创建元素
  2. 将字符串插入innerHTML
  3. 查询节点
  4. 示例:

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