javascript - 重大事件后带走 child

标签 javascript html

我正在尝试获取并显示输入。当我输入一个数字(例如 4)时,我的文档会循环显示数字,金额取决于输入的数字。我尝试以这样的方式进行:如果我想再次输入数字,则会创建一个新列表,并且旧列表将被删除。负责此操作的代码由行分隔。

<div id="get-numbers">
    <label for="input-one">Enter the number</label><br>
    <input type="text" id="input-one">
    <div id="container-numbers"></div>
</div>



<script>
    document.querySelector('#input-one').addEventListener('keypress', function(e){
        var inputOneValue = document.getElementById('input-one').value;
        var key = e.which || e.keyCode;
        if (key == 13){
            if (inputOneValue>=0){
                document.getElementById('input-one').value = ' ';
                //----------------------------------------------
                var getNumbers = document.getElementById('container-number');
                var child = getNumbers.children;
                if (child != 0){
                    var divNumber = document.getElementsByClassName('div-number');
                    getNumbers.removeChild;
                }
                //----------------------------------------------
                else{
                    for (var i=0; i<inputOneValue; i++){
                        var numberLi = document.createElement('DIV');
                        numberLi.className = 'div-number';
                        var numberText = document.createTextNode(i);
                        numberLi.appendChild(numberText);
                        getNumbers.appendChild(numberLi);
                    }
                }    
            }
            else document.getElementById('input-one').value = ' ';
        }
    });

</script>

最佳答案

javascript HTML DOM 方法removeChild(),删除父元素的子元素。 要从父级中删除子级,我们需要将子级引用传递给 removeChild() 方法。

更新后的脚本:

document.querySelector('#input-one').addEventListener('keypress', function(e){
    var inputOneValue = parseInt(document.getElementById('input-one').value);
    var key = e.which || e.keyCode;
    if (key == 13){
        if (inputOneValue >= 0){
            document.getElementById('input-one').value = '';
            //----------------------------------------------
            var getNumbers = document.getElementById('container-number');
            var childs = getNumbers.childNodes;
            if (childs.length > 0){
                for (var i = 0; i < childs.length; i++) {
                    getNumbers.removeChild(childs[i]);
                }

                // Alternative but slower
                // getNumbers.innerHTML = '';
            }
            //----------------------------------------------
            else{
                for (var i=0; i<inputOneValue; i++){
                    var numberLi = document.createElement('DIV');
                    numberLi.className = 'div-number';
                    var numberText = document.createTextNode(i);
                    numberLi.appendChild(numberText);
                    getNumbers.appendChild(numberLi);
                }
            }    
        }
        else {
            document.getElementById('input-one').value = '';
        }
    }
});

关于javascript - 重大事件后带走 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54725114/

相关文章:

javascript - 支持多窗口的 Comet JavaScript 库

JavaScript。求十六进制代码的反码

javascript - 是否可以使用变量作为 JavaScript 引用

html - 在小 div 中居中大图像,溢出可见

html - "document type does not allow element "脚本 "here"尝试验证我的页面时

javascript - 为什么 lodash 中的 _.pick(object, _.identity) 返回空对象?

javascript - 在 Angular 中从路由器访问变量

html - 列在移动设备上未居中对齐

jquery - 具有自动消耗的内容可编辑的 div

Javascript:如果满足条件则隐藏元素