IE浏览器不支持 getElementsByClassName 方法,而该方法可以非常方便地获取文档中指定 class 名称的元素集合。在解决这个问题之前,先简要了解下 getElementsByClassName 方法的用法。
IE浏览器不支持 getElementsByClassName
方法,而该方法可以非常方便地获取文档中指定 class 名称的元素集合。在解决这个问题之前,先简要了解下 getElementsByClassName
方法的用法。
getElementsByClassName
方法
document.getElementsByClassName(classname)
该方法返回一个包含文档对象中所有指定类名的元素的 NodeList 集合。我们可以像使用数组一样使用它,比如访问 NodeList 中某个元素:
var elements = document.getElementsByClassName('my-class');
console.log(elements[0]);
IE浏览器不支持 getElementsByClassName
IE浏览器不支持 getElementsByClassName
方法源于它在这类浏览器中没有被实现。一种解决方式是通过将类名转换为带有特定规则的 CSS 选择器,然后使用 querySelectorAll
方法来获取元素集合。
将类名转换为带有特定规则的 CSS 选择器
将类名转换为带有特定规则的 CSS 选择器需要使用正则表达式或其他字符串处理技巧。
function toSelector(className) {
// 如果类名包含空格,按空格分割并添加 '.' 前缀
if (/\s/.test(className)) {
return '.' + className.split(/\s+/).join('.');
}
// 否则直接添加 '.' 前缀
return '.' + className;
}
使用 querySelectorAll
方法
使用转换后的 CSS 选择器,调用 querySelectorAll
方法来获取元素集合。
var elements = document.querySelectorAll(toSelector('my-class'));
console.log(elements[0]);
示例
以下是两个示例,第一个示例演示了如何将类名转换为带有特定规则的 CSS 选择器,第二个示例演示了如何使用 querySelectorAll
方法。
// 示例 1
function toSelector(className) {
// 如果类名包含空格,按空格分割并添加 '.' 前缀
if (/\s/.test(className)) {
return '.' + className.split(/\s+/).join('.');
}
// 否则直接添加 '.' 前缀
return '.' + className;
}
// 示例 2
var elements = document.querySelectorAll(toSelector('my-class'));
console.log(elements[0]);
本文标题为:IE浏览器不支持getElementsByClassName的解决方法


基础教程推荐
- 使用 IntraWeb (38) - TIWAppForm、TIWForm、TIWBaseHTMLForm、TIWBaseForm 2023-10-26
- Ajax异步请求的五个步骤及实战案例 2023-02-23
- uniapp打包app提示通讯录权限问题,如何取消通讯录权限 2022-10-30
- 「开源免费」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之动态表单设计器(五) 2023-10-08
- Ajax实现动态加载组合框的实例代码 2023-02-14
- 字节跳动、抖音小程序如何获取授权用户信息 2022-11-04
- JavaScript之BOM location对象+navigator对象+history 对象 2023-12-02
- 一文带你掌握axios 工具函数 2023-12-01
- JS 精确统计网站访问量的实例代码 2023-12-19
- 基于bootstrap的上传插件fileinput实现ajax异步上传功能(支持多文件上传预览拖拽) 2023-01-31