为什么删除运算符运算符不会删除NodeList类的属性?

时间:2015-12-21 11:36:53

标签: javascript foreach callback

在下面的代码中,

<form action="javascript:void(0)" method="GET" enctype="multipart/form-data">
            <fieldset>
                <legend>Details</legend>
                Enter the name: <input id="name" name="name" type="text" size="30"
                                onblur="isTheValueValid(this, document.getElementById('name_help'));">  
                <span id="name_help"></span>
                <br>
            </fieldset> 
        </form>
<script type="text/javascript">
            function deleteAllChildren(spanElementObject){
                if(spanElementObject != null){
                        var nodeList = spanElementObject.childNodes;
                        [].forEach.call(nodeList,function(property){
                            delete property;
                        }); 
                }
            }
            function editSpanElementText(regex, inputElementValue, spanElementObject, helpMessage){
                deleteAllChildren(spanElementObject);
                if(!regex.test(inputElementValue)){
                    spanElementObject.appendChild(document.createTextNode(helpMessage));
                    return false;
                }else{
                    return true;    
                }
            }
            function isTheValueValid(inputElementObject, spanElementObject){
                return editSpanElementText(
                                    /^[\u0041-\u005A\u0061-\u007A\.\' \-]{2,15}\s?[\u0041-\u005A\u0061-\u007A\.\' \-]{0,15}\s?[\u0041-\u005A\u0061-\u007A\.\' \-]{2,15}$/, 
                                    inputElementObject.value, 
                                    spanElementObject, 
                                    'Please enter a valid name.');      
            }
        </script>

首次尝试时,如果失去对输入元素的关注,则会在提供错误的输入值时呈现错误消息Please enter a valid name.

对于第二次尝试,在失去对输入元素的关注时,在提供正确输入值时不会删除错误消息Please enter a valid name.

在调试forEach时,不会删除#text子节点。

为什么delete不会删除属性?

1 个答案:

答案 0 :(得分:1)

  

为什么delete不会删除子元素?

你在这里犯了两大错: