设置/获取动态自定义属性
主要的现代浏览器支持动态设置/检索自定义属性,IE 系列除外。如何在所有浏览器中设置/获取自定义属性?
这是我到目前为止所尝试过的:
HTML:
<input id="myInput" type="text" />
JS:
var myInput = document.getElementById('myInput');
myInput.setAttribute('custom-attr', 'custom-value');
alert(myInput.getAttribute('custom-attr'));
or
var myInput = document.getElementById('myInput');
var customAttr = document.createAttribute('custom-attr');
customAttr.value = 'custom-value';
myInput.setAttributeNode(customAttr);
alert(myInput.getAttribute('custom-attr'));
在这两种情况下 IE alert()
返回 null
。
Major modern browsers support setting/retrieving custom attribute dynamically, except IE-family. How can I set/get my custom attribute in all browsers?
This is what I've tried so far:
HTML:
<input id="myInput" type="text" />
JS:
var myInput = document.getElementById('myInput');
myInput.setAttribute('custom-attr', 'custom-value');
alert(myInput.getAttribute('custom-attr'));
or
var myInput = document.getElementById('myInput');
var customAttr = document.createAttribute('custom-attr');
customAttr.value = 'custom-value';
myInput.setAttributeNode(customAttr);
alert(myInput.getAttribute('custom-attr'));
In both cases IE alert()
returns null
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我在 IE7/8 上测试了你的代码
,运行良好。这个简单的测试用例对您来说是否失败了,或者您实际上正在做一些不同的事情?
您可以使用括号表示法
如果名称中没有
-
,则可以使用点表示法I tested your code on IE7/8
and it runs fine. Does that simple test case fail for you, or are you actually doing something different?
You can use bracket notation
If you did not have the
-
in the name, you can use dot notation您的代码在 IE6、IE7、IE8、FF、Chrome、Opera 上运行良好。
Your code works just fine on IE6, IE7, IE8, FF, Chrome, Opera.