我遇到了一些Javascript的问题,当我连接到localhost时,我的笔记本电脑上的工作正常,但是当代码放在远程服务器上并且我从同一台笔记本电脑和浏览器(IE11)连接到它时。相关的代码段是:
var wktxt = inputs[i].getAttribute( "ondblClick" );
wktxt = wktxt.replace("(" + rowno, "(" + rowcnt)
inputs[i].setAttribute( "ondblClick", wktxt );
inputs[i].style.backgroundImage = "url()";
它在第二行失败了"对象不支持属性或方法'替换'""然而问题不是在本地命中并且行为与预期完全一致(这是在HTML表格中克隆一行的一些逻辑的一部分)。当我开始调试失败时,wktxt包含"函数ondblclick(){AddNotes2(1,0)}",rowno为1,rowcnt为7。
有什么想法吗?这段代码在一个循环中执行 - 是否与每次迭代时重新执行的var声明有关?
答案 0 :(得分:0)
由于replace方法是字符串对象原型的一部分。看来var wktxt的结果可能并不总是等于字符串。要测试它,您可以使用typof语句。像
这样的东西if (typeof wktxt === 'string') {
wktxt = wktxt.replace("(" + rowno, "(" + rowcnt)
inputs[i].setAttribute( "ondblClick", wktxt );
inputs[i].style.backgroundImage = "url()";
}
else {
//write some code here to put whatever you want in wktxt should it fail to evaluate to
// a string
}