Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象没有';不支持此属性或方法-IE 7/8_Javascript - Fatal编程技术网

Javascript 对象没有';不支持此属性或方法-IE 7/8

Javascript 对象没有';不支持此属性或方法-IE 7/8,javascript,Javascript,你知道为什么这在IE 7/8中不起作用吗?(在IE 9和10、FF和Chrome中工作良好) 单击“发送”按钮时,控制台显示: SCRIPT438: Object doesn't support this property or method script.1383689376.js, line 94 character 3 (Line 94) : token = $("#token").val(); HTML: 这行HTML: <input type="hidden" name="t

你知道为什么这在IE 7/8中不起作用吗?(在IE 9和10、FF和Chrome中工作良好)

单击“发送”按钮时,控制台显示:

SCRIPT438: Object doesn't support this property or method 
script.1383689376.js, line 94 character 3
(Line 94) : token = $("#token").val();
HTML:

这行HTML:

<input type="hidden" name="token" id="token" value="'.$_SESSION['token'].'">
您有一个未声明的标识符。当执行这一行时,IE尝试创建一个全局变量标记(由于未声明的变量),但由于已经有一个(前面提到的DOM元素),IE抛出一个错误

为什么IE不简单地分配新的值是一个十多年来一直被问到的问题,你不会得到一个合理的答案

简单的解决方法是声明所有变量

使用函数表达式分配给未声明的变量尤其糟糕。与函数声明相比,它没有任何好处,并且有一些严重的缺点(您刚刚发现了一个)。因此,除非您有很好的理由使用函数表达式,否则请始终在适当的范围内声明变量并始终使用函数声明。

这一行HTML:

<input type="hidden" name="token" id="token" value="'.$_SESSION['token'].'">
您有一个未声明的标识符。当执行这一行时,IE尝试创建一个全局变量标记(由于未声明的变量),但由于已经有一个(前面提到的DOM元素),IE抛出一个错误

为什么IE不简单地分配新的值是一个十多年来一直被问到的问题,你不会得到一个合理的答案

简单的解决方法是声明所有变量


使用函数表达式分配给未声明的变量尤其糟糕。与函数声明相比,它没有任何好处,并且有一些严重的缺点(您刚刚发现了一个)。因此,除非您有很好的理由使用函数表达式,否则请始终在适当的范围内声明变量并始终使用函数声明。

是否
$==jQuery
?是否正在使用
jQuery.noConflict()
?那么,您使用的是什么版本的jQuery?如果您正在尝试jQuery2.x,那么它是正确的。我使用的是jQuery1.8.3-我听说1.10.x与旧浏览器有问题。另外,没有使用jQuery.noConflict()。1.10.x应该可以与旧浏览器配合使用。但是,可能不适用于较旧的插件,因为它们可能正在使用一些来自早期版本的API?是否正在使用
jQuery.noConflict()
?那么,您使用的是什么版本的jQuery?如果您正在尝试jQuery2.x,那么它是正确的。我使用的是jQuery1.8.3-我听说1.10.x与旧浏览器有问题。另外,没有使用jQuery.noConflict()。1.10.x应该可以与旧浏览器配合使用。但是,可能不适用于较旧的插件,因为它们可能正在使用一些来自早期版本的API。
<input type="hidden" name="token" id="token" value="'.$_SESSION['token'].'">
  token = $("#token").val();