我的页面上有<img>
个未知数量的元素没有ID,我需要能够浏览它们并根据一些不可预测的因素设置某些属性。
答案 0 :(得分:6)
您可以使用this function作为数组浏览它们:
document.getElementsByTagName('img');
这是一个img
元素数组,您可以将其视为使用getElementById()
函数(即您仍然可以对元素执行相同的操作,但需要引用元素):
document.getElementsByTagName('img')[0]
如果您所说的因素非常复杂,我会使用jQuery(它非常强大):
$('img[alt]').css('padding', '10px');
这会为每个具有10px
属性的图像添加alt
填充(我希望,因为我因发布几乎正常工作的代码而臭名昭着)。
答案 1 :(得分:6)
每个人都忘记了document.images
...
for(var i = 0; i < document.images.length; i++) {
var img = document.images[i];
if(img.src == "banner.gif") {
img.alt = "Banner";
}
else if(img.alt == "Giraffe") {
img.title = "15 feet tall!";
}
}
如果您需要在另一个元素中获取图像,可以使用getElementsByTagName
...
var elem = document.getElementById('foo');
var fooImages = elem.getElementsByTagName('img');
答案 2 :(得分:4)
使用document.getElementsByTagName()
:
var imgs = document.getElementsByTagName("img");
for(var i = 0; i < imgs.length; i++) {
var currentImg = imgs[i];
if (currentImg.somAttr) {
// do your stuff
}
}
答案 3 :(得分:2)
您可以使用getElementsByTagName获取img标记列表:
https://developer.mozilla.org/en/DOM/element.getElementsByTagName
答案 4 :(得分:1)
您可以为图像标记设置名称属性,并可以使用document.getElementsByName执行任何操作。例如
<script type="text/javascript">
function getElements()
{
var x=document.getElementsByName("x");
alert(x.length);
}
</script>
<input name="x" type="text" size="20" /><br />
<input name="x" type="text" size="20" />
答案 5 :(得分:0)
使用jQuery并按元素类型搜索$(“img”)。each()对每个元素执行am操作
答案 6 :(得分:0)
jQuery可能是你最好的选择。否则,您将必须遍历dom树并手动检查属性。使用jQuery后,您可以按名称,类,标签名称(输入,图像等)及其组合等属性选择元素。
$("image .className").attr(....
答案 7 :(得分:-1)
如果不了解更多细节,很难回答这个问题,但是你考虑过使用Jquery吗?