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 .