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

发布于 2024-10-04 11:34:58 字数 75 浏览 3 评论 0原文

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

I have an unknown number of <img> elements on my page with no IDs, and I need to be able to browse through them and set certain attributes based on a number of unpredictable factors.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

愛上了 2024-10-11 11:34:59

每个人都会忘记 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');

Everyone forgets about 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!";
  }
}

If you need to get images within another element, you can use getElementsByTagName...

var elem = document.getElementById('foo');
var fooImages = elem.getElementsByTagName('img');
玩套路吗 2024-10-11 11:34:59

使用 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
   }
}

Use 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
   }
}
甜是你 2024-10-11 11:34:59

您可以使用 getElementsByTagName 获取 img 标签列表:

https://developer.mozilla。 org/en/DOM/element.getElementsByTagName

You can use getElementsByTagName to get a list of the img tags:

https://developer.mozilla.org/en/DOM/element.getElementsByTagName

空城缀染半城烟沙 2024-10-11 11:34:59

您可以为图像标签设置名称属性,并可以使用 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" />

You can set name attribue for image tag and can perform any operation using document.getElementsByName.

for example

<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" />
海的爱人是光 2024-10-11 11:34:59

使用 jQuery 并按元素类型搜索 $("img").each() 对每个元素执行 am 操作

Use jQuery and search by element type $("img").each() to perform am operation on each element

够运 2024-10-11 11:34:59

jQuery 可能是您最好的选择。否则你将不得不遍历 dom 树并手动检查属性。使用 jQuery 后,您可以通过名称、类、标签名称(输入、图像等)及其组合等属性来选择元素。

$("image .className").attr(....

http://www.jquery.com

jQuery is probably your best bet. Otherwise you'll have to traverse a dom tree and check for attributes manually. Once you use jQuery you can select elements by attributes like name, class, the tag name (input, image, etc) and combinations of them.

$("image .className").attr(....

http://www.jquery.com

来日方长 2024-10-11 11:34:59

在不了解更多细节的情况下很难回答这个问题,但是您考虑过使用 Jquery 吗?

It's hard to answer this without knowing more specifics, but have you considered using Jquery?

寂寞陪衬 2024-10-11 11:34:58

您可以使用此函数将它们作为数组浏览:

document.getElementsByTagName('img');

这是一个数组img 元素,您可以将其视为使用 getElementById() 函数(即,您仍然可以对元素执行相同的操作,但需要引用一个元素):

document.getElementsByTagName('img')[0]

如果你所说的因素真的很复杂,我会使用 jQuery (它真的很强大):

$('img[alt]').css('padding', '10px');

这将为每个带有 alt 属性的图像添加一个 10px 填充(我希望如此,因为我因发布几乎可以工作的代码而臭名昭著)。

祝你好运!

You would use this function to browse through them as an array:

document.getElementsByTagName('img');

This is an array of img elements, and you can treat it as if you were using the getElementById() function (i.e. you can still do the same operations on the elements, but you need to reference an element):

document.getElementsByTagName('img')[0]

If the factors you are speaking about are really complicated, I would use jQuery (it's really powerful):

$('img[alt]').css('padding', '10px');

This would add a 10px padding to every image with an alt attribute (I hope, as I'm notorious for posting almost-working code).

Good luck!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文