Internet explorer jQuery';字符串上的s选择器不适用于Internet Explorer

Internet explorer jQuery';字符串上的s选择器不适用于Internet Explorer,internet-explorer,jquery,jquery-selectors,Internet Explorer,Jquery,Jquery Selectors,我使用jQuery的$.get()调用ajax,它将字符串返回给函数。这个字符串包含xml和html,我必须使用jQuery的选择器提取html的某些部分,例如: $.get( url, function (xml) { $(xml).find('something').whatever(); } ); 在这种情况下,Firefox和Chrome都可以正常工作,假设XMLvar是一个字符串(当然是用php发送的头文本/html)。但在IE中,它找不到“某

我使用jQuery的
$.get()
调用ajax,它将字符串返回给函数。这个字符串包含xml和html,我必须使用jQuery的选择器提取html的某些部分,例如:

$.get(
    url,
    function (xml) {
        $(xml).find('something').whatever();
    }
);
在这种情况下,Firefox和Chrome都可以正常工作,假设XMLvar是一个字符串(当然是用php发送的头文本/html)。但在IE中,它找不到“某物”标签

为什么这样不行

更新:

我试图简化这个问题:

var test = "<hello><world /></hello>";
alert($(test).find('world').length);
var测试=”;
警报($(测试).find('world').length);
这在每个浏览器上都可以正常工作(显示
1
),但在Internet Explorer中则不行,它显示
0
(仅在IE7上试用)


如何解决此问题而不必更改XML中变量的格式?

尝试将数据类型设置为html

$.get(
    url,
    function (xml) {
        $(xml).find('something').whatever();
    },
    'html'
);

由于是XML,请尝试以下操作:

$(xml).contents().find('something').whatever()

这类似于在Iframe中访问DOM

更新:

对弗洛伦评论的答复:

$(document).ready(function(){  
  var txt = "<hello><world/></hello>";  
  if (window.DOMParser) {  
   parser=new DOMParser();  
   xmlDoc=parser.parseFromString(txt,"text/xml");  
  }  
  else // Internet Explorer
  {  
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");  
    xmlDoc.async="false";  
    xmlDoc.loadXML(txt);  
  }  
  alert($(xmlDoc).find('world').length);  
});  
$(文档).ready(函数(){
var txt=“”;
if(window.DOMParser){
parser=新的DOMParser();
xmlDoc=parser.parseFromString(txt,“text/xml”);
}  
else//internetexplorer
{  
xmlDoc=新的ActiveXObject(“Microsoft.XMLDOM”);
xmlDoc.async=“false”;
xmlDoc.loadXML(txt);
}  
警报($(xmlDoc.find('world').length);
});  
对于从本地字符串变量解析XML字符串,您必须专门为IE创建一个解析器对象。FF或其他可能不需要它


但是对于
$.ajax
来说,如果
数据类型
被指定为
xml
,那么这个转换是自动完成的,我们不必创建xml解析器。

好吧,这不起作用。我相信默认的数据类型是html。实际上,“xml”变量是一个字符串,而不是xml格式的,所以这也不起作用。上面的部分代码取自