代码之家  ›  专栏  ›  技术社区  ›  Sachin Shanbhag

getElementByID().parentNode返回空值

  •  4
  • Sachin Shanbhag  · 技术社区  · 15 年前

    document.getElementById("myid").parentNode 正在返回空值。

    我确信元素“myid”不是根元素,它的父元素是需要返回的DIV。我使用的是Firefox3.6.10版本。

    有人能告诉我为什么会这样吗?

    下面是我的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,但是没有得到输入文本元素的相同ParentNode。还有一件更奇怪的事情是,我刚刚添加了一个检查,说如果getelementbyid不为空,那么检查它的parentNode。然后进一步添加如果parentNode不为空,则执行刷新操作。现在控件不在parentNode not null条件内。

    2 回复  |  直到 15 年前
        1
  •  7
  •   Pointy    15 年前

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

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

        2
  •  1
  •   Cauly    15 年前

    document.getElementById("myid").parentNode ?