2012-06-23 14 views
8

Chcę uzyskać src elementu img w HTML. Wygląda to tak:Pobierz src elementu img z div?

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

To bardzo proste, gdy umieszczam identyfikator w img, i src to bardzo łatwe.

Ale problem jest, gdy otrzymam src od IMG z elementu div.

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

Muszę dostać ten URL w ciąg. Ale nie warto.

+0

Co masz w _someimage_? – Coder

Odpowiedz

21

Dlaczego nie spróbować czegoś takiego:

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

Więcej informacji na temat korzystania getElementsByTagName może warto spojrzeć na:

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

Istnieją pewne sprawdzanie błędów nie robić tutaj , ale próbuję pokazać, jak możesz to zrobić.

+0

Dzięki. to jest praca – user1477082

1

Problem polega na tym, że masz spacje między tagami div i img. Właśnie dlatego pierwszym elementem div nie jest obraz, ale tekst - który nie ma metody getAttribute.

można usunąć spacje i używać js, jak to było:

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

będzie pracować:

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

można uzyskać tag obraz z'S div używając getElementsByTagName('img') jako następujące:

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

Powyższe rozwiąże Twoje zadanie.

Więcej informacji można uzyskać tutaj Scripting Documents, Radzę przeczytać ten rozdział.

3

Albo jeszcze prościej:

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

działa na mnie

1

Wiem, że pytanie jest zadawane przez js, które zostało odebrane, dla 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); 

Może to być przydatne dla kogoś który wygląda podobnie w jquery.

1

Po pierwsze, zamiast używać element.firstChild, należy użyć element.children[0]. Ponadto zamiast element.getAttribute('src') użyj element.src.

Nadzieja to pomaga,

Awesomeness01

Powiązane problemy