2012-06-23 114 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