2012-06-23 116 views
8

我想在HTML中获取img元素的src。它看起来是这样的:从div获取img元素的src?

<div class="image_wrapper" id="this_one"> 
     <img src="Images/something.jpg" /> 
</div> 

这是非常简单的,当我把一个ID在img中,并得到这个src很容易。

但问题是,当我从div元素获取img的src时。

var someimage = document.getElementById('this_one').firstChild.getAttribute("src"); 
alert(someimage); 

我需要在字符串中获取此URL。但不值得。

+0

你_someimage_得到什么? – Coder

回答

21

为什么不尝试这样的事:

var someimage = document.getElementById('this_one'); 
var myimg = someimage.getElementsByTagName('img')[0]; 
var mysrc = myimg.src; 

更多关于使用的getElementsByTagName你可能想看看:

https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByTagName

有一些错误检查我没有在这里做,但我只是想展示你如何做到这一点。

+0

谢谢你。是工作 – user1477082

1

问题是您在divimg标记之间有空格字符。这就是为什么div的第一个元素不是图像而是文本 - 它没有方法getAttribute

您可以删除空格和使用您的JS,因为它是:

<div class="image_wrapper" id="this_one"><img src="Images/something.jpg" /></div> 

将工作:

var someimage = document.getElementById('this_one').firstChild.getAttribute("src"); 
alert(someimage); 

您可以从您的DIV使用getElementsByTagName('img')作为获取图像标签以下:

var divEl = document.getElementById('this_one'), 
    src = divEl.getElementsByTagName('img')[0].src; 

以上将解决您的任务。

更多你可以从这里得到Scripting Documents,我建议你阅读本章。

3

或者更简单:

document.getElementById('yourimageID').getElementsByTagName('img')[0].src 

对我的作品

1

我知道这个问题是问这已经回答了JS,jQuery的

var image = $('#this_one img')[0];  // $('#this_one img') this will return the img array. In order to get the first item use [0] 
var imageSrc = image.src; 
alert(imageSrc); 

这可能是有用的人在jQuery中看起来类似。

1

首先,不是使用element.firstChild,而是使用element.children[0]。此外,使用element.src而不是element.getAttribute('src')

希望这有助于

Awesomeness01