额,在FF中时正常的,但是,在 IE8.0 中 通过 try catch (e) alert(e) 却得到了此错误。
代码如下
$("#XTABLE").find("tr").not(":first").each(function(){
self=$(this);
if(self.data("gt")==1)
{
self2=self.find("td:eq(0)");
transstring=self2.text()+";"+getSelectValue_1(self.find("select"),1)+";"+self.find(":input:eq(1)").val()+";"+self.find(":input:eq(2)").val()+";"+self.find(":input:eq(3)").val();
postData+=transstring+"$";
}
});
红色区域为错误 发生区,
其实现在还是不明白 为什么 会错误。、
开始 我想定义一个self变量,到是一想到其实自己有self的全局变量,所以,直接使用就好了,于是 就直接使用,而没有在此作用于之上重新定义self。
结果 错就错在没有定义 self上,问题的原因可能是 self 没有检测到,javascript 可以预先不定义 变量,相当于一个全局变量。
2 可能在前面或是其他页面这个 self被某些影响...
于是
var postData="";var self2,transstring,self;
重新定义就oK.
结果教育:在javascript中尽量少使用全局变量。毕竟不是静态语言,要先编译,所以 javascript 的运行速度不能和编译型语言比较。
再就是自己的 javascript 代码的规范上,必须规范,包括变量命名和使用,防止交叉变量。
2012年3月29日18:37:36