javascript - getElementByID().parentNode 返回 null

标签 javascript

出于某种原因,这发生得非常模糊。它有时有效,有时无效。同一行代码,对于同一父级下的不同“myid”,行 -

document.getElementById("myid").parentNode 返回 null。

我很确定元素“myid”不是根元素,它的父元素是一个需要返回的 DIV。我使用的是 Firefox 3.6.10 版本。

谁能提出这可能发生的任何原因?

编辑:这里的“myid”是某种文本框或任何其他控制元素。但是parentnode总是DIV。我们添加的任何控件总是包裹在 DIV 下。所以基本上当屏幕上的东西刷新时,我们得到父节点并替换 innerhtml。 innerhtml 可以是任何内容。

下面给出的是我的 html -

<div style="height: 334px; width: 769px; position: relative;">

    <span style="display: inline-block; height: 13px; width: 61px; position: absolute; left: 393px; top: 84px;" bizappid="System856UserGroupAppPoint156d5elabel300" tabindex="-1" id="System856UserGroupAppPoint156d5elabel300">User Group</span>   

    <input type="text" style="height: 20px; width: 221px; position: absolute; left: 503px; top: 77px;" bizappid="System856UserGroupAppPoint156d5etextBox190" class="formtextbox" tabindex="400" id="System856UserGroupAppPoint156d5etextBox190" readonly="readonly" name="System856UserGroupAppPoint156d5etextBox190">
</div>

在此 Html 中,假设我为 Span 元素获取 ParentNode,但我没有为 Input 文本元素获取相同的 parentNode。还有一件更奇怪的事情是,我只是添加了一个检查,说明如果 getelementbyid 不为空,然后检查它的 parentNode。然后进一步添加如果 parentNode 不为 null 则进行刷新操作。现在控件不会进入 parentNode not null 条件。

最佳答案

如果页面上的两个或多个元素共享相同的“id”值,则 getElementById(可能)返回节点列表而不是 DOM 引用。节点列表实例没有“parentNode”属性。

不要为多个元素重复使用“id”值是这个故事的寓意。

关于javascript - getElementByID().parentNode 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3941939/

相关文章:

php - 如何在 openstreetmap 中从 map 外部打开标记?

javascript - Angular Controller 可以绑定(bind)到网页的多个部分吗?

javascript - Node.js 中的 Webscraper 返回带有 async 和 Promise 的空数组

javascript - 创建一个没有重复项的多维对象数组

javascript - 通过 ng-class 添加类时,angular.element 不起作用

javascript - 为什么当显式告知函数返回 true 时,函数会返回 undefined?

javascript - 从另一个js函数触发Backbone事件

javascript - Passport 认证失败导致重定向循环

javascript - 很难理解 javascript 示例

javascript - 使用jquery或js检测JPG CMYK图像客户端