如何在不知道 HTML 元素 ID 的情况下从 JavaScript 中选择该元素?
我的页面上有未知数量的 元素,没有 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
每个人都会忘记
document.images
...如果您需要要获取另一个元素中的图像,您可以使用
getElementsByTagName
...Everyone forgets about
document.images
...If you need to get images within another element, you can use
getElementsByTagName
...使用
document.getElementsByTagName()
:Use
document.getElementsByTagName()
:您可以使用 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
您可以为图像标签设置名称属性,并可以使用 document.getElementsByName 执行任何操作。
例如
You can set name attribue for image tag and can perform any operation using document.getElementsByName.
for example
使用 jQuery 并按元素类型搜索 $("img").each() 对每个元素执行 am 操作
Use jQuery and search by element type $("img").each() to perform am operation on each element
jQuery 可能是您最好的选择。否则你将不得不遍历 dom 树并手动检查属性。使用 jQuery 后,您可以通过名称、类、标签名称(输入、图像等)及其组合等属性来选择元素。
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.
http://www.jquery.com
在不了解更多细节的情况下很难回答这个问题,但是您考虑过使用 Jquery 吗?
It's hard to answer this without knowing more specifics, but have you considered using Jquery?
您可以使用此函数将它们作为数组浏览:
这是一个数组
img
元素,您可以将其视为使用getElementById()
函数(即,您仍然可以对元素执行相同的操作,但需要引用一个元素):如果你所说的因素真的很复杂,我会使用 jQuery (它真的很强大):
这将为每个带有
alt
属性的图像添加一个10px
填充(我希望如此,因为我因发布几乎可以工作的代码而臭名昭著)。祝你好运!
You would use this function to browse through them as an array:
This is an array of
img
elements, and you can treat it as if you were using thegetElementById()
function (i.e. you can still do the same operations on the elements, but you need to reference an element):If the factors you are speaking about are really complicated, I would use jQuery (it's really powerful):
This would add a
10px
padding to every image with analt
attribute (I hope, as I'm notorious for posting almost-working code).Good luck!