html li标签设置value诡异的有关问题
html li标签设置value诡异的问题
设置li的value为一串数字,结果获取的时候不是原来的值.
直接上代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>给li标签设置value</title> </head> <body> <li id="myLi"></li> <script type="text/javascript"> window.onload = function () { console.log('onload'); var li22 = document.getElementById('myLi'); li22['setAttribute']('value', ('90000786062')); console.log(li22); console.log(li22.getAttribute('value')); } </script> </body> </html>
在IE 11中的结果:
控制台打印:
原因:
ul 中的li定义的value会自动转换为int.数值,ie 浏览器下大于int最大值,显示int最大值,其他浏览器显示为0.而且无论你定义什么值,都会转int.默认为1,例如value=中文。所以如果你想要实现正确取值,就需要换一个li属性例如自定义属性time.或者改一种实现标签元素,例如div.都可以
解决方法:
不使用value,而使用其他名称
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>给li标签设置value</title> </head> <body> <li id="myLi"></li> <script type="text/javascript"> window.onload = function () { console.log('onload'); var li22 = document.getElementById('myLi'); li22['setAttribute']('value2', ('90000786062')); console.log(li22); console.log(li22.getAttribute('value2')); } </script> </body> </html>
IE11 :
1 楼
white_crucifix
19 小时前
呐尼,li还有value属性?