我有一个包含图像和元素的元素列表。更多元素。我需要得到图像的src。 HTML代码就是这样。
<div class="flex-card">
<div class="flex-figure">
<a href="">
<figure class="image">
<span class="fig-lable">Colombo</span>
<img src="https://wenuka.com/media/visit-fl/banner-img.jpg" class="tile-media"/>
</figure>
</a>
</div>
</div>
我尝试使用此代码获取图像的src。
var elem = document.getElementsByClassName("flex-figure");
for (var i = 0; i <= elem.length; i++) {
var imgTag = elem[i].getElementsByTagName('img')[0];
var srcLink = imgTag.src;
console.log(srcLink);
}
它会出现以下错误。
Uncaught TypeError: Cannot read property 'src' of undefined
答案 0 :(得分:0)
更改
for (var i = 0; i <= elem.length; i++) {
要
for (var i = 0; i < elem.length; i++) {
var elem = document.getElementsByClassName("flex-figure");
for (var i = 0; i < elem.length; i++) {
var imgTag = elem[i].getElementsByTagName('img')[0];
var srcLink = imgTag.src;
console.log(srcLink);
}
&#13;
<div class="flex-card">
<div class="flex-figure">
<a href="">
<figure class="image">
<span class="fig-lable">Colombo</span>
<img src="https://wenuka.com/media/visit-fl/banner-img.jpg" class="tile-media"/>
</figure>
</a>
</div>
</div>
&#13;
答案 1 :(得分:0)
你有一个一个一个错误,但为什么不使用querySelectorAll
代替它,它会更清洁:
const imgs = document.querySelectorAll('.flex-figure img');
imgs.forEach(img => console.log(img.src));
<div class="flex-card">
<div class="flex-figure">
<a href="">
<figure class="image">
<span class="fig-lable">Colombo</span>
<img src="https://wenuka.com/media/visit-fl/banner-img.jpg" class="tile-media"/>
</figure>
</a>
</div>
</div>
querySelectorAll
比getElementsBy*
方法更灵活,并且还返回一个可以直接迭代的静态NodeList,与其他方法(返回实时HTMLCollections,这可能很难处理)。
答案 2 :(得分:0)
console.log(document.getElementsByTagName("IMG")[0].src)
&#13;
<div class="flex-card">
<div class="flex-figure">
<a href="">
<figure class="image">
<span class="fig-lable">Colombo</span>
<img src="https://wenuka.com/media/visit-fl/banner-img.jpg" class="tile-media"/>
</figure>
</a>
</div>
</div>
&#13;