为什么我不能用这个jQuery代码(IE)遍历多个XML节点
我正在使用下面的代码迭代XML的多个节点,但它似乎不起作用为什么我不能用这个jQuery代码(IE)遍历多个XML节点,jquery,xml,Jquery,Xml,我正在使用下面的代码迭代XML的多个节点,但它似乎不起作用 var xmlDat = $.parseXML($('#xmlText').val()); // Here I am reading an XML content on paste event of xmlText var xml = $(xmlDat); var path = xml.find('ProjectID').text(); xml.find('a,b,c,d').each(function(){ { //
var xmlDat = $.parseXML($('#xmlText').val());
// Here I am reading an XML content on paste event of xmlText
var xml = $(xmlDat);
var path = xml.find('ProjectID').text();
xml.find('a,b,c,d').each(function(){
{
// Giving unwanted results
}
但如果使用如下所示
xml.find('a').each(function(){
{
// Giving results
}
请让我知道我如何才能纠正代码,使这在上述情况下也工作 它在ie9中运行良好
然而,在ie7中,您将需要使用过滤器
而不是查找
,因为ie会清除外部元素,所以
或者,要使相同的代码在所有浏览器中都能工作,首先将xml包装在一个虚拟元素中,然后始终使用find
,这样就不需要浏览器嗅探和其他丑陋的工具来实现跨浏览器兼容
$('<div></div>').append(xml).find('a,b,c,d')
$('').append(xml.find('a,b,c,d'))
示例:它在ie9中运行良好
然而,在ie7中,您将需要使用过滤器
而不是查找
,因为ie会清除外部元素,所以
或者,要使相同的代码在所有浏览器中都能工作,首先将xml包装在一个虚拟元素中,然后始终使用find
,这样就不需要浏览器嗅探和其他丑陋的工具来实现跨浏览器兼容
$('<div></div>').append(xml).find('a,b,c,d')
$('').append(xml.find('a,b,c,d'))
示例:我尝试用HTML元素包装XML文档,在IE7和IE8中效果很好。您的原始代码片段在IE9和其他浏览器中运行良好。代码如下:
var xmlDat = "<div><root><a></a><b></b></root></div>";
var xml = $(xmlDat);
xml.find('a,b,c,d').each(function(){
alert('Hi');
});
var xmlDat=“我尝试用HTML元素包装XML文档,在IE7和IE8中效果很好。您的原始代码片段在IE9和其他浏览器中运行良好。下面是代码:
var xmlDat = "<div><root><a></a><b></b></root></div>";
var xml = $(xmlDat);
xml.find('a,b,c,d').each(function(){
alert('Hi');
});
var xmlDat=“请提供XML文档的示例、您得到的结果和您想要得到的结果。显示它应该可以工作。@FelixKling kling它在google Chrome中工作得很完美,但在IE中却不行。我在IE上工作。很抱歉之前没有提到浏览器。请检查这里,顺便说一句,我认为您不应该再次将xmlDat
传递给jQuery。它应该已经是jQuery对象。我没有IE的访问权限,所以我真的帮不了你,但是你看了吗?@FelixKling刚刚看到了这个问题,这是一个很好的问题。但是,由于我没有从Ajax加载任何数据,我只是在解析一个字符串,我有点困惑,无法将我的问题与提供的答案联系起来。@FelixKling是的,您应该这样做:“然后可以将此文档传递到jQuery
,以创建一个可以遍历和操作的典型jQuery对象。”parseXML()
只返回一个标准的XML DOM文档
。请提供一个XML文档示例、您得到的结果和您想要得到的结果。显示它应该可以工作。@FelixKling kling它在google Chrome中工作得很完美,但在IE中却不行。我在IE上工作。很抱歉之前没有提到浏览器。请检查这里,顺便说一句,我认为您不应该再次将xmlDat
传递给jQuery。它应该已经是jQuery对象。我没有IE的访问权限,所以我真的帮不了你,但是你看了吗?@FelixKling刚刚看到了这个问题,这是一个很好的问题。但是,由于我没有从Ajax加载任何数据,我只是在解析一个字符串,我有点困惑,无法将我的问题与提供的答案联系起来。@FelixKling是的,您应该这样做:“然后可以将此文档传递到jQuery
,以创建一个可以遍历和操作的典型jQuery对象。”parseXML()
只返回标准的XML DOM文档
。