Javascript 简单jQuery上的IE错误

Javascript 简单jQuery上的IE错误,javascript,jquery,internet-explorer,internet-explorer-8,Javascript,Jquery,Internet Explorer,Internet Explorer 8,有关错误的详细信息 Useraget:Mozilla/4.0 (兼容; msie8.0 ; windowsnt 5.1 ;; Trident/4.0;.NET CLR 1.1.4322; InfoPath.1;.NET CLR 2.0.50727;.NET CLR 3.0.04506.30;.NET CLR 3.0.4506.2152;.NET CLR 3.5.30729)Tiemstamp:2010年5月25日星期二 协调世界时08:54:11 消息:对象不支持 此属性或方法行:208 字符:

有关错误的详细信息

Useraget:Mozilla/4.0 (兼容; msie8.0 ; windowsnt 5.1 ;; Trident/4.0;.NET CLR 1.1.4322; InfoPath.1;.NET CLR 2.0.50727;.NET CLR 3.0.04506.30;.NET CLR 3.0.4506.2152;.NET CLR 3.5.30729)Tiemstamp:2010年5月25日星期二 协调世界时08:54:11

消息:对象不支持 此属性或方法行:208 字符:3代码:0

在第208行,我有
perpage=$(“#perpage”).val()

这里怎么了?这只发生在IE8中,Firefox运行得完美无缺。
有人知道吗?

每个页面id为
的元素是否是表单输入字段以外的元素?如果是,您应该使用:

var perpage = $("#perpage").html(); // for html contents of the element
var perpage = $("#perpage").text(); // for textual contents of the element

如果您已将id
#perpage
分配给多个元素,则这也可能会有问题。

具有id
perpage
的元素是否有表单输入字段以外的内容?如果是,您应该使用:

var perpage = $("#perpage").html(); // for html contents of the element
var perpage = $("#perpage").text(); // for textual contents of the element

如果将id
#perpage
分配给多个元素,这也可能会有问题。

问题似乎是我对JavaScript变量元素id有相同的名称。当我将变量重命名为vperpage时,它在IE中也能正常工作

vperpage = $("#perpage").val(); //Seem to work in Internet Explorer
有人能证实IE中的这种奇怪行为吗

编辑时间:2010-05-25 13:57格林尼治标准时间+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的元素时,这就不起作用了。因此,不总是声明自己的变量是一个糟糕的做法:)吸取了教训

问题似乎是JavaScript变量元素id的名称相同。当我将变量重命名为vperpage时,它在IE中也能正常工作

vperpage = $("#perpage").val(); //Seem to work in Internet Explorer
有人能证实IE中的这种奇怪行为吗

编辑时间:2010-05-25 13:57格林尼治标准时间+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的元素时,这就不起作用了。因此,不总是声明自己的变量是一个糟糕的做法:)吸取了教训

perpage是一个选择下拉列表,id只被使用一次。@jamietelin:这是以前没有告诉过的,谢谢你的澄清。perpage是一个选择下拉列表,id只被使用一次。@jamietelin:这是以前没有告诉过的,谢谢你的澄清。是的,这是众所周知的,这就是为什么你应该总是使用
var
。看精彩的博宾斯。谢谢你的链接!是的,这是众所周知的,这就是为什么您应该始终使用
var
。看精彩的博宾斯。谢谢你的链接!