"预期对象“;仅在IE8中使用jQuery时出错

"Object expected" error using jQuery only in IE8

本文关键字:出错 IE8 jQuery 仅在 quot 对象      更新时间:2023-09-26

我只在IE中收到一个错误(v8,我不知道它是否发生在旧的IE版本中,但在Chrome或Firefox中不会发生),当我使用IE开发工具的debbuger时,它会给我带来以下消息:

Breaking on JSScript runtime error - Object Expected

这是我受影响的代码:

$('#deviceProfileSelection').change(function() { //affected line!!!!
// rest of my code...
});

该元素#deviceProfileSelection定义如下:

<select id="deviceProfileSelection">
   <option value=""><?php echo getSysMessage("dropDownSelect")?></option>
   <!-- and other values...-->
</select>

我已经尝试将.change监听器定义为$(document).ready(function () {});,但根本没有成功。还有其他想法吗?

编辑

我试图使用PHP决策结构包含一个div,如果条件为true,它应该打印一个div。但是,实际上它没有打印,我的意思是,它没有打印开始标记"div",只打印结束标记"div"。

浏览器可以解释这个错误,但IE8和这个IE功能导致了这个问题。

问题是您根本没有将jQuery添加到代码中。在<head>标签中添加以下内容:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>

这应该能解决你的问题。

检查以下内容:

  1. 执行此代码时是否包含jQuery?(我会在$上做一个提醒,看看你得到了什么)
  2. 确保deviceProfileSection元素存在

我之前在IE8中遇到过类似的问题,如果是同样的问题,它无法找到jquery库,无法检查您的路径或使用cdn 测试它

我在IE8中尝试了下面的代码,它和预期的一样工作。正如其他答案中所建议的,我使用了与JQuery CDN中的IE8兼容的最新版本的JQuery。不要使用2.x——它不适用于较旧的浏览器。此外,请确保更改事件代码位于document.ready处理程序中。

<html>
    <head>
        <title>IE8 Object Expected</title>
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
        <script type="text/javascript">
            $(function(){
                $("#deviceProfileSelection").change(function(){
                    console.log("#deviceProfileSelection changed to " + $(this).find(":selected").text());
                });
            });
        </script>
    </head>
    <body>
        <form>
            <select id="deviceProfileSelection">
                <option value="">Select...</option>
                <option value="1">One</option>
                <option value="2">Two</option>
                <option value="3">Three</option>
            </select>
        </form>
    </body>
</html>

这样就不会有人重复我的错误了,因为你使用的是来自外部网站的jquery(src="http://code.jquery.com/jquery-1.10.2.min.js"),确保您的互联网正常工作