今天测试给我提了一个bug:在页面上我需要借助"</td>"来获取表格中某行内的某列以后的单元格,也就是说里面有这样一行代码:“tr = tr.substring(tr.indexOf("</td>"));”,这个JavaScript脚本在谷歌等浏览器中均可以达到预期效果,可是在IE8中就不行了,弄了一个多小时最后终于发现了问题,先看如下代码:
<html>
<head>
<title>重新认识Jquery中的html()方法</title>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312"/>
<script type="text/javascript" src="./jquery-1.6.2.js"></script>
<script type="text/javascript">
$(function(){
alert($("table").html());
});
</script>
</head>
<body>
<table width="100" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><input type="text" id="userName" name="userName"></td>
</tr>
</table>
</body>
</html>
该代码在谷歌浏览器中可以“理想”地在提示框中显示出来,可是在IE8中我们会发现提示框中的所有标签均变成了大写,所以“tr = tr.substring(tr.indexOf("</td>"));”当然不起作用了,没办法,最终的解决方案为:tr = tr.indexOf("</td>") == -1 ? tr.substring(tr.indexOf("</TD>")) : tr.substring(tr.indexOf("</td>"));
说明:上面解决方案中tr是变量,呵呵呵,我只是粘贴出了一部分代码,这行代码是在$.each()数组遍历方法中的。
【0分下载资源】