javascript - getElementsByClassName - 在 2012 年可以安全使用吗?

标签 javascript dom

JavaScript 的 getElementById可以使用,我知道。但是getElementsByClassName怎么样? ?浏览器对此的支持如何?

通过 Google 我找到了各种自制的解决方案,比如 this

如您所见,这篇文章已有四年历史,这就是我问的原因。或者我应该只使用 jQuery 来处理类似的东西吗?

最佳答案

首先,您必须准确确定您需要支持的 IE 版本:IE6、IE7、IE8?如果不知道这一点,我们就无法真正提供最佳选项集。如果您只需要 IE9 及更高版本(在某些模式下也需要 IE8),那么您可以使用 document.querySelectorAll(".classname")document.getElementsByClassName("classname").

如果您需要其他版本的 IE,则不能走那条路。 getElementsByClassName() 有不到 30 行代码的垫片,可用于在旧版本的 IE 中提供对它的支持,但在这一点上,我强烈建议你只是得到一个为您提供所有跨浏览器支持的选择器库。听起来您已经熟悉具有此类库的 jQuery。如果你不想/不需要 jQuery 的其余部分,你可以只得到一个选择器库。 jQuery 在内部使用 Sizzle,它本身就可用并且非常好。还有其他的。

这是一个很好的资源,您可以自己查找浏览器兼容性:http://caniuse.com/getelementsbyclassname .

关于javascript - getElementsByClassName - 在 2012 年可以安全使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11496587/

相关文章:

javascript - javascript触发对话框打开时如何使IE8/9提交输入类型="file"

javascript - then 和 finally in a promise 有什么区别?

javascript - 从 ajax 提供的 dataURI 创建视频文件

javascript - 如何使用 OOP 来避免一遍又一遍地重复相同的代码?

javascript - View 转换后,浏览器中的旧 View 或 DOM 元素会发生什么情况?

jquery - DOM 元素可以有一个包含空格的 ID 吗?

javascript - Bootstrap 将导航栏固定在 div 内

javascript - 根据自己已有的内容替换header标签的内容

java - org.w3c.dom : get element's height and width?

javascript - 如何在没有 jQuery 的情况下将 JavaScript 函数添加到 DOM 对象?