JavaScript中为元素加上name属性的方法


今天遇到个小问题, 在构建 DOM 时, IE 中不能通过 element.setAttribute('name', _variable); 和 element.name = _variable; 这样的形式来为元素加上 name 属性, 无论是 IE6 还是 IE7. (IE8 是可以的, 但 IE8rc1 不行)

后来我查看了 MSDN, 得到信息如下:

复制代码 代码如下:

Internet Explorer 8 and later can set the NAME attribute at run time on elements dynamically created with the createElement method. To create an element with a NAME attribute in earlier versions of Internet Explorer, include the attribute and its value when using the createElement method.

也就是说, 我们必须通过带属性和值的标签来创建有 name 属性的元素. 为求各浏览器兼容良好, 代码可以这样写:
复制代码 代码如下:

var element = null;
try {
// IE6/IE7 构建方式
element = document.createElement('<input name="radio-button">');
} catch (e) {
// W3C 构建方式
element = document.createElement('input');
element.name = 'radio-button';
}
// 定义其他属性
element.id = 'radio-1'
element.type = 'radio';

以前我是一个 Java 开发人员, 实际工作中 JavaScript 的代码量其实不多, 在自己的一些小应用中往往只是小打小闹, 会 (潜意识地) 避开一些可能出问题的地方, 像跨域使用 AJAX, IE 内存泄漏这样的问题很少回去考虑. 但在转做 UED 后, JavaScript 和交互应用肯定会成为我以后的工作重点, 发生大小各异问题的机会相当多 (现在几乎每天都有), 在解决各种问题的过程中, 我痛并快乐着. 本着不瞎搞, 少折腾的原则, 有必要把这些记录一下, 为自己备份, 更能与人分享.



相关阅读:
linux中使用shell实现的ftp自动上传下载文件方法
jQuery live
JS分层的概念与本地存贮
一招解决Linux系统下Openoffice乱码问题
Mysql中日期和时间函数应用不用求人
Vista系统下IE8有N个进程只显示一个的实现方法
Lesson01_04 格式标签与文本标签
PHP 文件上传进度条的两种实现方法的代码
视图刷新过程中出现的约束冲突问题
真正的iframe高度自适应(兼容IE,FF,Opera)
PHPCMS开发文档里看到PHP编码规范
mysql删除重复记录语句的方法
FTP二进制形式上传phpcms程序
Windows 2003 VPN制作方法
快速导航

Copyright © 2016 phpStudy |