基本场景:我在 HTML 页面上有一系列动态生成的元素。 (目前,它们都是 div
,但并不需要如此。)
我想要的是一个 javascript 函数,它将循环遍历所有这些 div
(或其他)以查找是否存在特定值。
最好、最跨浏览器的方法是什么? getElementsByName() 是否适用于所有浏览器中的 div
?我可以为它们提供相同的 ID 并以某种方式从 getElementById 中获取一个数组吗?
如果我将这些 div
更改为 spans
或 inputs
,事情会变得更容易吗?
谢谢!
(编辑:对于这个项目来说,如果有一个不使用任何外部 js 库的解决方案,那将是最好的。我假设 jQuery 有一个函数可以在一行中完成此操作,但目前我想避免与客户打开那 jar 蠕虫。)
最佳答案
getElementsByTagName
是在 DOM Core 中定义的,因此任何实现该功能的浏览器都可以使用。这涉及当前使用的所有浏览器。
查看此处了解具体信息:http://www.quirksmode.org/dom/w3c_core.html
需要注意的一个问题是 getElementsByTagName
返回一个 NodeList
- 而不是一个数组。它的工作原理是一样的,但它的评估很晚,所以如果你在遍历 NodeList
时向 DOM 添加/删除节点,你会得到奇怪的结果。在这些情况下,编写两个循环;首先循环遍历 NodeList
并将所有条目存储在数组中 - 然后循环遍历数组。
关于javascript - 在 javascript 中获取特定 DOM 元素组的内容列表的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/611978/