有关错误的详细信息
Useraget:Mozilla / 4.0 (兼容; MSIE 8.0; Windows NT 5.1; 三叉戟/ 4.0; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727; 。净 CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)Tiemstamp:2010年5月25日星期二 08:54:11 UTC
消息:对象不支持 此属性或方法行:208 字符:3代码:0
在第208行,我有perpage = $("#perpage").val();
这里有什么问题?它只发生在IE8中,Firefox运行得很完美。 有人有任何想法吗?
答案 0 :(得分:2)
问题似乎是我的 JavaScript变量和元素ID 的名称相同。当我将变量重命名为 vperpage 时,它在IE中也能正常工作。
vperpage = $("#perpage").val(); //Seem to work in Internet Explorer
任何可以在IE中确认这种奇怪行为的人吗?
编辑2010-05-25 13:57 GMT + 1
就像@bobince说的那样以及他发布的链接,如果我们不在JavaScript中声明变量,IE会将元素和变量看作同一个东西。
var perpage = $("#perpage").val(); /*Works in Internet Explorer */
perpage = $("#perpage").val(); /*Doesn't work in Internet Explorer since
we already have a element with the id perpage*/
这可能令人困惑,因为如果我们给它一个值,JavaScript本身也会自动声明一个不存在的变量。但是,正如我们在上面的问题中注意到的那样,当我们已经有一个具有相同id的元素时,这不起作用。所以,不好的做法是不要总是声明自己的变量:)经验教训!
答案 1 :(得分:1)
标识为perpage
的元素是否不是表单输入字段?如果是,您应该使用:
var perpage = $("#perpage").html(); // for html contents of the element
var perpage = $("#perpage").text(); // for textual contents of the element
如果您已将ID #perpage
分配给多个元素,这也可能会出现问题。