无法使用Javascript删除DOM元素

时间:2013-11-18 09:59:24

标签: javascript dom

我无法删除javascript中的hr元素。这是我尝试过的:

var hr = document.getElementsByTagName("hr");
hr.parentNode.removeChild(hr);

它说

  

TypeError:无法调用undefined

的方法'removeChild'

虽然第一行返回[<hr>]。然后我检查了console.log(hr.parentNode),它说未定义。

任何人都可以告诉我为什么会这样,为什么它没有访问parentNode的{​​{1}},反过来又没有删除该元素?

2 个答案:

答案 0 :(得分:1)

您应该在以下示例中尝试此代码:

<!DOCTYPE html>
<html>
<head id="Head1" runat="server">
    <title>Demo</title>
</head>
<body>
    <button onclick="removeElement()">RemoveElement</button>
    <hr />
    <script type="text/javascript" language="javascript">     

        function removeElement() {
            var hr = document.getElementsByTagName("hr");
            hr[0].parentNode.removeChild(hr[0]);
        }

    </script>
</body>
</html>

答案 1 :(得分:0)

这是因为getElementsByTagName返回NodeList,这是一个类似于数组的对象,其中包含页面中的所有hr。你需要遍历它,就像一个数组来访问集合中的每一个。

var hr = document.getElementsByTagName("hr");
for (var i = 0; i < hr.length; i++) {
  hr[i].parentNode.removeChild(hr);
}