Javascript jQuery filter()与Internet Explorer 6-7-8的兼容性

Javascript jQuery filter()与Internet Explorer 6-7-8的兼容性,javascript,jquery,ajax,internet-explorer,cross-browser,Javascript,Jquery,Ajax,Internet Explorer,Cross Browser,我的页面中有一个ajax调用,我使用jQuery库来完成这个特定任务。在ajax调用的响应中,我想解析响应消息 问题是,这段代码在IE 6-7-8上给了我一条错误消息(奇怪的是IE 9工作得很好,Firefox工作得很好): 任何想法都将受到高度赞赏。看起来这行正在生成错误: response_str = $(server_response).filter("#response").val(); 我复制代码相关部分: $.ajax({ type:'POST', url:'ajax.ph

我的页面中有一个ajax调用,我使用jQuery库来完成这个特定任务。在ajax调用的响应中,我想解析响应消息

问题是,这段代码在IE 6-7-8上给了我一条错误消息(奇怪的是IE 9工作得很好,Firefox工作得很好):

任何想法都将受到高度赞赏。看起来这行正在生成错误:

response_str = $(server_response).filter("#response").val();
我复制代码相关部分:

$.ajax({
  type:'POST',
  url:'ajax.php',
processData: 'false',
data:{
    data1: 'val1'
    ajax:'true'
        },
dataType: "html",
contentType: ''application/x-www-form-urlencoded''
    })
  .done( function(server_response) {
       //the following line generate error
       response_str = $(server_response).filter("#response").val();
          }
     })
}');
为什么不干脆
find()
it

response_str = $(server_response).find("#response").val(); 


上面的代码假设只有一个id为“response”的元素。

您使用的是哪个版本的jQuery?jQuery 2不支持IE 8或更早版本。您的代码中有很多类似的内容:
键入“'POST”“,
。这不可能是您正在运行的实际代码。@Jonathan:谢谢,我检查了version@MichealGeary:你说得对,这是一个pl/sql代码,它被编译成html,所以html代码中的“”应该是“”(我知道很奇怪),版本号是1.10.1。谢谢你的回答。这里有一个关于find vs filter的非常好的描述:请查看,但基本上答案是因为我的响应中也有兄弟节点,而不仅仅是childs…@czupe我真的没有看到问题。您正在html响应中的某处寻找具有特定id的元素。无论html结构如何,您都可以通过
find
filter
找到它。我将使用另一个
过滤器
选项更新答案,因为您似乎更喜欢它。我非常感谢您的工作,因此我将对其进行投票,但我恳请您查看此示例:我可以向您保证,我是第一次尝试使用find,但它不起作用(找不到元素:():第二个例子看起来不错,但正如我在另一条评论中所说的,问题已经解决了(缺少var,因为另一个javascript引擎ie 9可以解析ie8无法解析的内容)。@czupe好的,我只是假设您之前已经定义了变量
response_str = $(server_response).find("#response").val(); 
response_str = $(server_response).filter(function(i, el){
    return $(el).is('#response');
}).val();