Javascript 当document.getElementById()不';T

Javascript 当document.getElementById()不';T,javascript,jquery,getelementbyid,Javascript,Jquery,Getelementbyid,我有一些JavaScript,它通过ID从HTML文档中获取元素 在一个特定场景中,document.getElementById(idString)方法在IE8兼容模式下返回null,但是jQuery等效方法可以工作。我需要弄清楚为什么本地电话不起作用 下面是一个例子: var myId = "e_" + someId; var myNativeDiv = document.getElementById(myId); var myjQueryDiv = $("#" + myId); alert

我有一些JavaScript,它通过ID从HTML文档中获取元素

在一个特定场景中,document.getElementById(idString)方法在IE8兼容模式下返回null,但是jQuery等效方法可以工作。我需要弄清楚为什么本地电话不起作用

下面是一个例子:

var myId = "e_" + someId;
var myNativeDiv = document.getElementById(myId);
var myjQueryDiv = $("#" + myId);
alert(myNativeDiv + " - " + myjQueryDiv); // alerts "null - [Object object]"
我已经检查了
myId
在文档中是否是唯一的

任何调查的途径都是值得赞赏的


更新-实际上,
myjQueryDiv
也是空的,但我猜jQuery使它不是空的。但是,调用
parentDom.find(“#”+myId)返回正确的元素,其中parentDom是我需要查找的元素的祖先。

在IE8标准模式下,
getElementById
仅对
ID
属性执行区分大小写的匹配。在IE7标准模式和以前的模式中,此方法对ID和NAME属性执行不区分大小写的匹配,这可能会产生意外的结果

您的代码可能依赖于这些行为之一


jQuery将其结果包装在一个文件中,这样像
$(“.unused class”).remove()之类的东西就不会引起错误。您可以检查
.length
[0]
处的值,看看它是否与任何元素匹配。

对我来说很好


    • 好的,下面是答案

      我以前
      detach()
      ed了一个祖先元素,因此当从分离片段中的祖先元素执行jqueryfind时,可以通过ID查看该元素


      当然,jQuery find with Now context和本机方法都没有正确返回元素,因为它不是
      文档的一部分

      您可以发布一些HTML来复制出现此错误的“一个特定场景”吗?可能是由于myIdWell的类型,有时问题是它的页面没有加载,但jquery部分在加载时执行。尝试使用,$(document).ready()或等效项。我正在使用document.ready触发代码。恐怕我无法提供我正在使用的HTML文档-我正在查找更多需要检查的常规内容。您从DOM中删除了一个元素,因此它不在文档中,但仍然存在。