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 相关文章推荐
js chrome浏览器判断代码
Mar 28 Javascript
JS延迟加载(setTimeout) JS最后加载
Jul 15 Javascript
自己动手开发jQuery插件教程
Aug 25 Javascript
js快速排序的实现代码
Dec 08 Javascript
js实现div拖动动画运行轨迹效果代码分享
Aug 27 Javascript
jquery实现定时自动轮播特效
Dec 10 Javascript
基于JS代码实现图片在页面中旋转效果
Jun 16 Javascript
AngularJS实现一次监听多个值发生的变化
Aug 31 Javascript
几种响应式文字详解
May 19 Javascript
vuejs 单文件组件.vue 文件的使用
Jul 28 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
Jul 28 Javascript
什么是SOLID
Mar 24 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下使用iconv需要注意的问题
2010/11/20 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
php投票系统之增加与删除投票(管理员篇)
2016/07/01 PHP
摘自百度的图片轮换效果代码
2007/11/19 Javascript
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
javascript的document.referrer浏览器支持、失效情况总结
2014/07/18 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
2016/11/29 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
小程序getLocation需要在app.json中声明permission字段
2019/04/04 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
JS回调函数深入理解
2019/10/16 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
python正则表达式match和search用法实例
2015/03/26 Python
Python分析学校四六级过关情况
2017/11/22 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
pycharm新建一个python工程步骤
2019/07/16 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
Python : turtle色彩控制实例详解
2020/01/19 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
办公设备采购方案
2014/03/16 职场文书
2014最新版群众路线四风整改措施
2014/09/24 职场文书
公民代理授权委托书
2014/09/24 职场文书
博士给导师的自荐信
2015/03/06 职场文书
2019年最新版见习人员管理制度!
2019/07/08 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python
Python类方法总结讲解
2021/07/26 Python