当获取ul中的列表元素时,我们按类名或标记使用get元素并以数组形式返回
var targetImages = document.getElementById("image-list-view").getElementsByTagName("img");
我需要在此列表中获取元素图像,我似乎是堆栈
<ul id="image-list-view">
<li>
<a href="#" data-gallery>
<img src="images/pic1.jpg"/>
</a>
</li>
<li>
<a href="#" data-gallery>
<img src="images/pic2.jpg"/>
</a>
</li>
</ul>
修改
代码在网站启动时工作正常,但targetImages
以后无法再访问或引用,即(图片无法访问);
答案 0 :(得分:3)
您的代码有效,您只需循环搜索结果并对图像执行某些操作。
getElementsByTagName
返回一个HTMLCollection
,它几乎就像一个数组。你可以用同样的方式循环播放它。
var targetImages = document.getElementById("image-list-view").getElementsByTagName("img");
for (var i = 0; i < targetImages.length; i++) {
console.log(targetImages[i]);
}
I need to get the element image in this list and i seem to be stack
<ul id="image-list-view">
<li>
<a href="#" data-gallery>
<img src="images/pic1.jpg" />
</a>
</li>
<li>
<a href="#" data-gallery>
<img src="images/pic2.jpg" />
</a>
</li>
</ul>
答案 1 :(得分:3)
使用功能querySelectorAll
以及此选择器ul#image-list-view li img
。
此方法允许您直接获取图像元素并避免第二次执行功能。此外,如果ID为
null
的元素不存在,则此方法不会返回image-list-view
值。
var targetImages = document.querySelectorAll("ul#image-list-view li img");
console.log("Count of images: " + targetImages.length);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
ul {
display: none
}
&#13;
<ul id="image-list-view">
<li>
<a href="#" data-gallery>
<img src="images/pic1.jpg" />
</a>
</li>
<li>
<a href="#" data-gallery>
<img src="images/pic2.jpg" />
</a>
</li>
</ul>
&#13;
document.querySelectorAll()
返回文档中的元素列表(使用与指定选择器组匹配的文档节点的深度优先预先遍历遍历)。返回的对象是NodeList。