0

我希望在 HTML 字符串中创建所有图像的数组。

我尝试使用以下内容,但如果 src 中不存在完整的 URL 路径,则会生成错误。

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

4 回答 4

0

您可以通过创建“即时” html 元素来使用简单而纯正的 JavaScript 来做到这一点:

  1. 创建一个元素
  2. 将字符串插入为 innerHTML
  3. 查询节点

例子:

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)
    };
}
于 2012-04-16T03:16:33.983 回答
0
$("img").each(
      function(index) {
         theArray.push( $(this).attr("src") );
      });
于 2012-04-16T03:04:48.200 回答
0

试试这个:

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

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

$.each(imgArray, function() {
   srcArray.push(this.src));
});
于 2012-04-16T03:08:15.840 回答
0

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

使用 jQuery 的 DOM Ready 功能打开 ->

$(function(){

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

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

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

  var results = new Array();

遍历我们创建的每个元素found

  $.each(found, function(index,value){

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

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

错误关闭

   });

提醒数组中的项目总数;

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

只提醒我们添加到数组中的第三项的 src。

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

错误关闭

});

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

于 2012-04-16T03:09:08.837 回答