javascript中setAttribute兼容性用法分析


Posted in Javascript onDecember 12, 2016

本文实例分析了javascript中setAttribute兼容性用法。分享给大家供大家参考,具体如下:

1:常规属性建议使用 node.XXXX。
2:自定义属性建议使用node.getAttribute("XXXX")。
3:当获取的目标是JS里的关键字时建议使用node.getAttribute("XXX"),如label中的for。
4:当获取的目标是保留字,如:class,请使用className代替。

setAttribute(string name, string value):增加一个指定名称和值的新属性,或者把一个现有的属性设定为指定的值。

1、样式问题

setAttribute("class", value)中class是指改变"class"这个属性,所以要带引号。

vName代表对样式赋值。

例如:

代码如下:

var input = document.createElement("input");
input.setAttribute("type", "text");
input.setAttribute("name", "q");
input.setAttribute("class",bordercss);

输出时:<input type="text" name="q" class="bordercss">,即,input控件具有bordercss样式属性

注意:class属性在W3C DOM中扮演着很重要的角色,但由于浏览器差异性仍然存在。

使用setAttribute("class", vName)语句动态设置Element的class属性在firefox中是行的通的,但在IE中却不行。因为使用IE内核的浏览器不认识"class",要改用"className";

同样,firefox 也不认识"className"。所以常用的方法是二者兼备:

代码如下:

element.setAttribute("class", value); //for firefox
element.setAttribute("className", value); //for IE

2、方法属性等问题

例如:

代码如下:

var bar = document.getElementById("testbt");
bar.setAttribute("onclick", "javascript:alert('This is a test!');");

这里利用setAttribute指定e的onclick属性,简单,很好理解。

但是IE不支持,IE并不是不支持setAttribute这个函数,而是不支持用setAttribute设置某些属性,例如对象属性、集合属性、事件属性,也就是说用setAttribute设置style和onclick这些属性在IE中是行不通的。

为达到兼容各种浏览器的效果,可以用点符号法来设置Element的对象属性、集合属性和事件属性。

代码如下:

document.getElementById("testbt").className = "bordercss";
document.getElementById("testbt").style.cssText = "color: #00f;";
document.getElementById("testbt").style.color = "#00f";
document.getElementById("testbt").onclick= function () { alert("This is a test!"); }

示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>kingwell</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
<div id="idHeader" class="class-header" title="kingwell" status="1"></div>
<label id="forUserName" for="userName" title="kingwell" status="1"></label>
<script type="text/javascript">
var el = document.getElementById("idHeader");
alert(el.getAttribute("id"));
alert(el.id);
// IE Firfox->idHeader
alert(el.getAttribute("class"));
//IE6,IE7 -> null IE8,IE9,Firefox ->class-header
alert(el.class);
//IE6,IE7,IE8->报错 IE9,Firefox->undefined
alert(el.getAttribute("className"));
//IE6,IE7->class-header ; IE8,IE9,Firefox -> undefined
alert(el.className);
//All -> class-header
var elfor = document.getElementById("forUserName");
alert(elfor.getAttribute("for"));
//IE6,IE7->undefined IE8,9,Firefox->forUseName
alert(elfor.for )
//IE6,IE7报错,其它为undefined
alert(elfor.title)
//全部输出kingwell
alert(elfor.status);
//IE6-8 -> 1 IE9,Firefox->undefined
alert(elfor.getAttribute("status"))
//全部输出 1
</script>
</body>
</html>

更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
驱动事件的addEvent.js代码
Mar 27 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
May 12 Javascript
jQuery随便控制任意div隐藏的方法
Jun 28 Javascript
js 窗口抖动示例
Sep 04 Javascript
Javascript图片上传前的本地预览实例
Jun 16 Javascript
js+css实现文字散开重组动画特效代码分享
Aug 21 Javascript
学习vue.js计算属性
Dec 03 Javascript
js实现单张图片平移切换效果
Oct 11 Javascript
浅析Vue 生命周期
Jun 21 Javascript
JS实现显示当前日期的实例代码
Jul 03 Javascript
微信小程序开发摇一摇功能
Nov 22 Javascript
JS内置对象和Math对象知识点详解
Apr 03 Javascript
jQuery焦点图左右转换效果
Dec 12 #Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
Dec 12 #Javascript
jquery利用json实现页面之间传值的实例解析
Dec 12 #Javascript
多种方式实现js图片预览
Dec 12 #Javascript
JavaScript实现多栏目切换效果
Dec 12 #Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
Dec 12 #Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
Dec 12 #Javascript
You might like
[转帖]PHP世纪万年历
2006/12/06 PHP
php中一个有意思的日期逻辑处理
2012/03/25 PHP
PHP编码转换
2012/11/05 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
用move.js库实现百叶窗特效
2017/02/08 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
JavaScript 中使用 Generator的方法
2017/12/29 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
2018/02/01 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
python使用htmllib分析网页内容的方法
2015/05/08 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
2016/06/14 Python
详解python之简单主机批量管理工具
2017/01/27 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
Python截图并保存的具体实例
2021/01/14 Python
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
python控制台打印log输出重复的解决方法
2021/05/14 Python
Python 如何解决稀疏矩阵运算
2021/05/26 Python
mysql数据库实现设置字段长度
2022/06/10 MySQL