我无法删除javascript中的hr
元素。这是我尝试过的:
var hr = document.getElementsByTagName("hr");
hr.parentNode.removeChild(hr);
它说
TypeError:无法调用undefined
的方法'removeChild'
虽然第一行返回[<hr>]
。然后我检查了console.log(hr.parentNode)
,它说未定义。
任何人都可以告诉我为什么会这样,为什么它没有访问parentNode
的{{1}},反过来又没有删除该元素?
答案 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);
}