IE7中的jQuery选择器行为

时间:2010-10-01 10:33:21

标签: jquery internet-explorer-7

任何人都知道原因:

var strId = "xyz";
var oSectionOuter = $( "div#myr-body" ).find( "div#" + strId );

在IE7中工作(实际上IE8带有“兼容模式”),下面是HTML,但这不是吗?:

var strId = "xyz";
var oSectionOuter = $( "div#" + strId );

根据微软的“优秀”Javascript调试器,oSectionOuter最终是对整个DOM对象的引用,而不是对其中任何特定节点的引用。

<html>
<body>
...
<div id="myr-body">
...
<div id="xyz">
...

1 个答案:

答案 0 :(得分:0)

很难从发布的HTML中看出来。

如果HTML看起来像这样:

<html> 
<body>
   <div id="myr-body"></div>
   <div id="xyz"></div>
</body>
</html>

然后问题是:

$("div#myr-body").find("div#xyz");

这个选择器说,“找到id等于'xyz'的div,但存在于名为'myr-body'的div中。”这绝不会解决。

要使有问题的选择器工作,HTML必须如下所示:

<html> 
<body>
   <div id="myr-body">
      <div id="xyz"></div>
   </div>
</body>
</html>

否则,您可能会有倍数。