jquery 1.6.1 - selecting xml

jquery 1.6.1 - selecting xml

本文关键字:xml selecting jquery      更新时间:2023-09-26

在jquery 1.4.2中,我可以通过以下操作选择驻留在html页面中的xml:

var xmlSettings = $("#xmlSettings")[0];

这与相同

document.getElementById("xmlSettings"); //this still works fine

在jquery 1.6.1中,xmlSettings是未定义的。我所做的只是将jquery从1.4.2升级到1.6.1,但现在这不起作用了。

我需要做不同的选择,还是需要添加一个插件?

Html页面中的xml:

<xml id="xmlSettings">
 <items>
        <item name="Test1">Test data 1</item>
        <item name="Test2">Test data 2</item>
        <item name="Test3">Test data 3</item>
 </items>
</xml>

提前感谢

〔解决〕感谢Felix Kling

问题似乎是以下之一:

1) IE9未正确呈现IE8标准模式。我最近刚刚升级到IE9,但我的应用程序仍然需要在IE8标准模式下运行,因此我强制它在IIS中使用X-UA-兼容IE=8在IE8中渲染

2) 我还将jquery文件从1.4.2更新到1.6.1

但它可能是这些东西的组合,我不太确定使用正常的document.getElementById("xmlSettings");仍然可以正常工作,所以同时我会使用这个但非常奇怪的问题。如果这是IE9的问题,我不会感到惊讶。或者,现在我可能会继续使用jquery 1.4.2。

这是它不起作用的真正原因:jQuery 1.4.2中的回归。

您可能不需要[0],因为id是一个奇异值,不会像查找类那样返回对象列表。

我已经按照Arend 的建议回答了我自己的问题

〔解决〕感谢Felix Kling

问题似乎是以下之一:

1) IE9未正确呈现IE8标准模式。我最近刚刚升级到IE9,但我的应用程序仍然需要在IE8标准模式下运行,因此我强制它在IIS中使用X-UA-兼容IE=8在IE8中渲染。X-UA-Compatible的另一件事是使用IE=EmulateIE8,而不是使用IE=8。但是,即使使用IE=EmulateIE8,它仍然不能很好地与jquery 1.6.1配合使用。因此,最好使用工作良好的IE9标准模式,因此从长远来看,忙于将代码转换为标准代码会更好。

2) 我还将jquery文件从1.4.2更新到1.6.1

但它可能是这些东西的组合,我不太确定使用普通的document.getElementById("xmlSettings");仍然可以正常工作,所以同时我会使用这个但非常奇怪的问题。如果这是IE9的问题,我不会感到惊讶。或者,现在我可能会继续使用jquery 1.4.2。