在IE下用getAttribute时要小心
作者:Rank 来源:never-online weblog 时间:2008-08-21 12:54:00
在做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着实会让你头痛。
标签:getAttribute,ie,javascript
0
投稿
猜你喜欢
MySQL DQL语句的具体使用
2024-01-21 08:17:03
python Tornado框架的使用示例
2021-01-03 11:12:11
Python编程实现的简单Web服务器示例
2023-01-14 02:00:40
Python整数与Numpy数据溢出问题解决
2023-02-02 00:39:36
js模态对话框使用方法详解
2024-04-19 10:46:22
Python操作Redis之设置key的过期时间实例代码
2022-02-11 06:13:05
1亿条数据在PHP中实现Mysql数据库分表100张
2011-06-02 09:31:00
浅谈DataFrame和SparkSql取值误区
2021-03-21 22:04:18
Vue调用后端java接口的实例代码
2024-05-09 10:51:02
Python多线程编程之多线程加锁操作示例
2023-11-01 00:37:19
python中的内置函数max()和min()及mas()函数的高级用法
2023-01-21 18:45:43
Python sqlalchemy时间戳及密码管理实现代码详解
2021-05-06 10:43:35
MySQL的之表结构修改
2012-01-05 19:16:17
使用Keras加载含有自定义层或函数的模型操作
2022-12-25 19:29:29
Pytorch训练过程出现nan的解决方式
2021-04-21 08:12:08
python中如何提高图像质量
2023-05-17 17:02:03
分享python数据统计的一些小技巧
2022-08-20 11:24:47
打包发布Python模块的方法详解
2021-04-03 06:10:56
TensorFlow2.X使用图片制作简单的数据集训练模型
2023-08-17 04:01:55
PyTorch中的Variable变量详解
2023-02-19 18:48:47