当li的value属性值被设为""时, 浏览器的离奇表现

本文详细分析了在IE6+、FF3.0.11、Safari4、Chrome2.0.172.31、Opera9.63等浏览器中,使用JavaScript获取具有作为value属性值的LI元素值时的不同行为及原因。通过三种获取方式对比,揭示了浏览器兼容性问题,并解释了原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

情景:
当li的value属性被设置为""时, 用JS去获取该li的value属性值, 在不同的浏览器中, 其返回值不一样, 而且获取方法不同, 在相同的浏览器中, 得到的值还不一样!


测试浏览器:
IE6+, FF 3.0.11, Safari 4, Chrome 2.0.172.31, Opera 9.63


XHTML:
<ul><li id="item" value="">所有分类</li></ul>


JS:
var theItem = document.getElementById("item");

取值方式一:theItem.value
// 输出结果如下:
a. IE6+: 1;
b. FF3: -1;
c. Safari, Chrome, Opera: 0

取值方式二:theItem.getAttribute("value")
// 输出结果如下:
a. IE6+: 1;
b.FF3,Safari, Chrome, Opera: ""(即空值)

取值方式三:theItem.attributes["value"].nodeValue
// 输出结果如下:
a. IE6+: 1;
b.FF3,Safari, Chrome, Opera: ""(即空值)


其他测试:
(1). 将value属性设置为" "(即中间加上一个空格, 加多个效果一样)
a.theItem.value
IE6+: 1;
FF3: -1;
Safari, Chrome, Opera: 0.

b.theItem.getAttribute("value")
各浏览器均输出相同的值: " ".

c.theItem.attributes["value"].nodeValue
IE6+: 1;
FF3, Safari, Chrome, Opera: " ".

(2). 在不同的DOCTYPE下, 进行测试
经测试, DOCTYPE对此无影响.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值