博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个关于setAttribute的脚本错误
阅读量:4974 次
发布时间:2019-06-12

本文共 937 字,大约阅读时间需要 3 分钟。

在页面上发现一个脚本错误,通过Chrome的Debug发现问题出现在一个js方法

function switchToTab(obj) {    for (var i = 0; i < obj.parentNode.childNodes.length; i++) {        obj.parentNode.childNodes[i].setAttribute("class", "");        obj.parentNode.childNodes[i].setAttribute("className", "");    }    obj.setAttribute("class", "selected");    obj.setAttribute("className", "selected");}

注:setAttribute("className", value);是为了兼容IE,因为使用IE内核的浏览器不认识"class",要用"className"替代。

对setAttribute的了解可以参考这篇文章:

调试会报如下错误:Uncaught TypeError: Object #<Text> has no method 'setAttribute'

#<Text>是什么东东?在Chrome的控制台(Console)输入 obj.parentNode.childNodes 会发现每个子标签之间有一个#Text,这是因为你用原生的DOM API,是会选择到页面上的空白文本节点,空白文本节点不是标签,没有setAttribute方法。碰到这样的情况,还是用jQuery吧。

function switchToTab(obj) {    $(obj).parent().children().each(function () {        $(this).removeClass("selected");    });    $(obj).addClass("selected");}

这样就解决问题了。

转载于:https://www.cnblogs.com/young2012/archive/2012/12/05/2802871.html

你可能感兴趣的文章
[django]form的content-type(mime)
查看>>
JQUERY —— 绑定事件
查看>>
在TabControl中的TabPage选项卡中添加Form窗体
查看>>
oracle中SET DEFINE意思
查看>>
个人作业-最长英语链
查看>>
JMeter-性能测试之报表设定的注意事项
查看>>
1066-堆排序
查看>>
仿面包旅行个人中心下拉顶部背景放大高斯模糊效果
查看>>
强大的css3
查看>>
c#中的组件拖拽和MouseMove事件
查看>>
C# 小叙 Encoding (二)
查看>>
python创建对象数组避免浅拷贝
查看>>
CSS自学笔记(14):CSS3动画效果
查看>>
项目应用1
查看>>
Ubuntu下配置jdk和tomcat
查看>>
大型网站的演变升级
查看>>
图片延迟加载的实现
查看>>
php适配器模式(adapter pattern)
查看>>
C# 委托链(多播委托)
查看>>
解密个推持续集成
查看>>