TypeError:属性1不可配置且无法删除

时间:2016-01-17 00:40:44

标签: javascript arrays dom

对于以下页面,

<body>
    <form name="testForm" action="webtunings.php" method="get">
        <input type="text" name="city">
        <input type="submit">
    </form>
    <form action="test.php" method="post" id="id1">
        <input type="radio" name="isCorrect" value="yes" >
        <input type="radio" name="isCorrect" value="no">
    </form>
</body>

代码下方

> var obj = document.getElementsByTagName('form')
    undefined
> obj
    HTMLCollection [ <form>, <form#id1> ]
> Array.prototype.pop.call(obj);

给出错误:TypeError: property 1 is non-configurable and can't be deleted

下面的代码成功删除了form元素

> var obj = document.getElementById("id1")
    undefined
> obj.parentNode.removeChild(obj)

使用Array.prototype.pop,为什么浏览器会说obj的不可配置属性与第二种方法不同?

1 个答案:

答案 0 :(得分:1)

HTML集合包含DOM中表单元素的实时列表。

如果您从DOM中删除表单,则列表将自动更新。

您无法直接从列表中删除元素。它旨在禁止这种情况。