在IE下用getAttribute时要小心
作者:Rank 来源:never-online weblog 发布时间:2008-08-21 12:54:00
标签:getAttribute,ie,javascript
在做DHTML时,我们在某些情况下要用setAttribute(attri, value)方法定义元素的attribute。同时与getAttribute(attri)配对来得到相应的自定义attribute的值。
但在IE下要小心。getAttrubite方法,其官方文档里描述它的返回值是这样说的:
Return Value
Variant. Returns a string, number, or Boolean, defined by sAttrName. If an explicit attribute doesn't exist, an empty string is returned. If a custom attribute doesn't exist, null is returned.
返回值
变体。返回一个定义attribute时的字符串,数字,或者布尔值,如果这个已有属性不存在,则是一个空字符串,如果一个自定义的attribute不存在,则返回null。
下面来做个自定义实验
上面的示例可以看到的确如文档中描述的那样,返回值没有异议。
在select控件中,我们可以用selectObject.value来得到或者设置某个控件的值。比如:
<select id="ctlSelect">
<option value="">- please select -</option>
<option value="1">opt1</option>
<option value="2" selected>opt2</option>
<option value="3">opt3</option>
<option value="4">opt4</option>
</select>
<button onclick="document.getElementById('ctlSelect').value=''">set value</button>
但是将上面两个例子(getAttribute与select)结合起来用的话,效果就与我们想象中的不一样了。
下面的例子是一个select联动的效果,也就是选择第一个select,对应的value会赋值得第二个select上。
(下例中select控件第一个选项是空字符串) 当选中第一个选项时,你会发现第二个select中竟没有任何一个选项被选中。与上例我们所写的示例代码相矛盾。
这个bug的解决方法很简单,只需要我们手工强制转型。但这不得不让我怀疑IE里selectObject.value处理机制。
bug虽小,但却是个不大不小的陷阱,一旦你不小心掉了进去,在大量的代码中寻找这个bug着实会让你头痛。


猜你喜欢
- 本文实例为大家分享了js编写贪吃蛇小游戏的具体代码,供大家参考,具体内容如下刚学完js模仿着教程,把自己写的js原生小程序。HTML部分&l
- 最近人工智能等多门课需要复现论文,近两年的论文很多都是基于Pytorch环境做的实验,所以,这里总结一下Pytorch的安装教程,做好最快、
- socket接口是实际上是操作系统提供的系统调用。socket的使用并不局限于Python语言,你可以用C或者Java来写出同样的socke
- 一、开发工具**Python****版本:**3.6.4相关模块:DecryptLogin模块;argparse模块;以及一些Python自
- 有的时候我们在获取到目标电脑时候如果对方电脑又python 编译环境时可以利用python 反弹shell主要用到python os库和so
- 1.0 新建项目1.1 初始化项目输入npm init,之后需要填什么就写什么新建src目录,并在src目录下新建alert.vue$ np
- Python 代码库之Tuple如何append元素tuple不像array给我们提供了append函数,我们可以通过下面的方式添加t=[1
- 这是一个access较为豪华的包装范例,他调用了flash的流媒体控件,利用flash的交互与通信功能,借以达到了我们装扮软件的目的。fla
- 如果是windows安装完成后,需要将'\Python27\Scripts\'加入系统环境变量# coding=utf-8i
- 一、概述前提:已安装 Python,如下图所示:1.1 检查是否已配置成功(选)1. 打开运行窗口 (1) 快捷键  
- 今天有个朋友做网页的时候遇到个问题:想保留链接的背景,但又要链接里的文字消失!可是弄了半天一直没办法把这个文字去掉。我想很多学标准的朋友都遇
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN&q
- 最近为了做Hyperledger Fabric国密改造,涉及到了golang源码的改动。特将操作过程整理如下,以供参考:golang的源码安
- Scrapy 结构概述:一、下载器中间件(Downloader Middleware)如上图标号4、5处所示,下载器中间件用于处理scrap
- 这篇文章主要介绍了jekins配置python脚本定时任务过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 通常我们在vue里面使用别人开发的组件,第一步就是install,第二步在main.js里面引入,第三步Vue.use这个组件。今天我简单的
- 本文实例讲述了Go语言实现socket的方法。分享给大家供大家参考。具体分析如下:用golang不用他的net包还有什么意义,这里提供一个测
- 前言容器数据类型包括数组list,字典dict以及元组tuple等。本篇,将详细介绍ChainMap字典序列的使用。ChainMapChai
- 这篇文章主要介绍了python 类的继承 实例方法.静态方法.类方法的代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定
- 一、打开、关闭文件 语法为open (filevar, filename),其中filevar为文件句柄,或者说是程序中用来代表某文件的代号