在工作当中经常遇到一些诡异的浏览器问题,今后我会将所遇到的浏览器问题记录于此,以使大家少走弯路,轻松的工作,从而更好的生活!^_<
【异常描述】
在ie6和ie7中,为li节点设定自定义属性value时,发生未处理的异常。
【异常代码】
下面的代码是很常见的dom生成,由于li的自定义属性名称是value,下面的代码在ie6及ie7下面引发异常。
var ul = document.createElement("ul");
var li = document.createElement("li");
//下面两行代码会触发异常
li.value = "11";
//li.setAttribute("value","11");
ul.appendChild(li);
document.body.appendChild(ul);
【解决方案】
不能给li节点设置名称是value的自定义属性,遇到这个问题,将value属性重构为其它名称即可。
//将value重构为jsvalue
li. jsvalue = "11";
//li.setAttribute("jsvalue","11");
【在线测试】
<!doctype html> <html dir="ltr" type="text/javascript" lang="zh-CN"> <head> <meta charset="utf-8"/> <title>ie6/ie7下为list设定自定义属性触发异常-By:王祥</title> </head> <body> <script type="text/javascript"> var ul = document.createElement("ul"); var li = document.createElement("li"); //下面两行代码会触发异常 li.value = "11"; //li.setAttribute("value","11"); ul.appendChild(li); document.body.appendChild(ul); </script> </body> </html>
运行(或者将代码保存为html格式执行)