2012-06-23 31 views
8

Tôi muốn lấy src của phần tử img trong HTML. Có vẻ như sau:Nhận src của phần tử img từ div?

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

Rất đơn giản khi tôi đặt ID vào img và nhận được src này rất dễ dàng.

Nhưng vấn đề là khi tôi nhận được src của img từ phần tử div.

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

Tôi cần nhận URL này theo chuỗi. Nhưng không đáng.

+0

gì bạn nhận được trong _someimage_? – Coder

Trả lời

21

Tại sao không thử một cái gì đó như thế này:

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

Để biết thêm về việc sử dụng getElementsByTagName bạn có thể muốn xem xét:

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

Có một số kiểm tra lỗi tôi đã không làm ở đây , nhưng tôi chỉ cố gắng thể hiện cách bạn có thể làm điều đó.

+0

Cảm ơn bạn. đó là công việc – user1477082

1

Vấn đề là bạn có ký tự khoảng cách giữa các thẻ divimg. Đó là lý do tại sao phần tử đầu tiên của div không phải là hình ảnh nhưng văn bản - không có phương thức getAttribute.

Bạn có thể loại bỏ không gian và sử dụng js của bạn vì nó là:

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

nó sẽ làm việc:

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

Bạn có thể nhận được thẻ hình ảnh từ của bạn div sử dụng getElementsByTagName('img') như như sau:

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

Ở trên sẽ giải quyết nhiệm vụ của bạn.

Bạn có thể nhận thêm từ đây Scripting Documents, tôi khuyên bạn nên đọc chương này.

3

Hoặc thậm chí đơn giản hơn:

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

trình cho tôi

1

Tôi biết câu hỏi là hỏi cho js đó đã được trả lời, cho 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); 

Nó có thể hữu ích cho một ai đó trông giống như trong jquery.

1

Đầu tiên, thay vì sử dụng element.firstChild, hãy sử dụng element.children[0]. Ngoài ra, thay vì element.getAttribute('src'), hãy sử dụng element.src.

Hope this helps,

Awesomeness01

Các vấn đề liên quan