如何在不知道ID的情况下从JavaScript中选择HTML元素?

时间:2010-11-24 04:42:05

标签: javascript html select image

我的页面上有<img>个未知数量的元素没有ID,我需要能够浏览它们并根据一些不可预测的因素设置某些属性。

8 个答案:

答案 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(....

http://www.jquery.com

答案 7 :(得分:-1)

如果不了解更多细节,很难回答这个问题,但是你考虑过使用Jquery吗?