javascript/js对html元素自定义属性的操作(兼容Firefox和IE) .

 很多情况下,我们常常通过javascript对HTML元素的属性进行操作,如获取或设置以下html代码块中input元素的value;
1
<input id="input_btn" type="button" value="kanqd.com" />

我们常常会写以下的代码:

1
2
var inputObj = document. getElementById ( 'input_btn' ) ;
alert (inputObj. value ) ;

如我们所想的一样,页面上弹出kanqd.com.

问题: 在一些应用产景中,我们需要对html元素的添加一些自定义属性以满足应用,比如,对给以上input标记加一个info属性,代码如下:

1
<input id="input_btn" type="button" value="kanqd.com"  info="this is a self defined attribute" />;

如果我们还是以同样的代码进行操作:

1
2
var inputObj = document. getElementById ( 'input_btn' ) ;
alert (inputObj. info ) ;

执行后会发现,在IE中弹出”this is a self defined attribute” , 但在firefox中它就出错了,原因是IE自动将自定义属性解析到了DOM中,和标准属性没有任何区别,但FireFox对自定义属性的使用,限制更高.

兼容方法如下:
1、用元素attributes[]集合来访问:

1
2
3
4
var inputObj = document. getElementById ( 'input_btn' ) ;
alert (inputObj. attributes [ 'info' ]. nodeValue ) ;
inputObj. attributes [ 'info' ]. nodeValue = 'this is a new info' ;
alert (inputObj. attributes [ 'info' ]. nodeValue ) ;

2、用getAttribute 和 setAttribute对其进行操作:

1
2
3
4
var inputObj = document. getElementById ( 'input_btn' ) ;
alert (inputObj. getAttribute ( 'info' ) ) ;
inputObj. setAttribute ( 'info' , 'this is a new info' ) ;
alert (inputObj. getAttribute ( 'info' ) ) ;

^_^:
注意:这里所说的自定义属性是特指在html页面中定义的元素属性,用javascript动态创建的属性不会有这个问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值