<script type="text/javascript">
var data='<newtag><othertag attr1="abc" /></newtag>';
var foo = $(data).children('othertag');
var result = foo.attr('attr1');
alert(result);
</script>
在Mozilla firefox上,此代码不会导致任何问题,但在Internet Explorer“newtag”和“othertag”是HTMLUnkownElements,因此无法正确解析它们。它不会比“newtag”更进一步。
我查了一下并尝试添加parseXml:
<script type="text/javascript">
function parseXml(xml)
{
if (jQuery.browser.msie)
{
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.loadXML(xml);
xml = xmlDoc;
}
return xml;
}
var data= parseXml('<newtag><othertag attr1="abc" /></newtag>');
var foo = $(data).children('othertag');
var result = foo.attr('attr1');
alert(result);
</script>
但没有运气。使用Mozilla,我在警报中获得“abc”,使用IE,我得到“未定义”。
任何在IE中解决此问题的方法,还是我必须使用除jQuery以外的其他东西来解析xml?
请注意,在实际情况中,从服务器收到大量的xml数据并且解析比这更精细,jQuery非常有用。我也在使用jQuery 1.5,但1.6并没有什么区别。