从元素背景中抓取图像元素作为DOM资源

时间:2013-05-01 01:23:03

标签: javascript html image dom

考虑以下小提琴:http://jsfiddle.net/rf4hV/

在那里我正在听img的负载。加载图片后,我会得到event,其中包含target图像资源。

1)在不使用jquery加载器时是否有获取此资源的方法?我该怎么做?

2)我如何为the-div background-image获取相同的资源?基本上,我希望看到与问题1中的event.target相同的属性。

1 个答案:

答案 0 :(得分:1)

获取一个元素的bg图像并将其添加到另一个DOM节点的jQuery方法:

jsfiddle

  $(function() {          
      var bgimg = $("#the-div").css('background-image').replace(/url\(|\)/g,'');
      $("img").attr('src',bgimg);
      console.log($("img")[0]);
  });

这将为您提供src属性设置为#the-div背景的DOM图像对象。

你也可以在没有jQuery的情况下做同样的事情,即使没有将img元素添加到curent DOM树

jsfiddle

  var thediv = document.getElementById("the-div")
  var img = new Image();
  img.src = document.defaultView.getComputedStyle(thediv, null).getPropertyValue('background-image').replace(/url\(|\)/g,'');
  console.log(img);

现在你有一个DOM对象,你可以访问它的属性。

我希望这就是你想要的。 如果不从该背景图像构造DOM对象,则无法将背景图像作为DOM对象访问,但这正是上述示例所做的。