lastChild.remove()不适用于IE

时间:2014-07-20 10:38:45

标签: javascript html

我想动态添加和删除输入文件,我的代码适用于没有Internet Explorer的所有浏览器。任何人都可以帮我解决我的问题吗? 这是Javascript:

<script>
            var counter = 1;
            var min = 1;
            var max = 20;
            function addInput(divName) {
                if (counter == max) {
                    alert("Max limit!");
                }
                else {
                    var newdiv = document.createElement('div');
                    newdiv.innerHTML = '<input type="file" name="file[]" id="file"><br>';
                    document.getElementById(divName).appendChild(newdiv);
                    document.getElementById("qty").value++;
                    counter++;
                }
            }
            function remInput(divName) {
                if (counter == min) {
                    alert("Min limit!");
                }
                else {
                    var element = document.getElementById(divName);
                    element.lastChild.remove();
                    document.getElementById("qty").value--;
                    counter--;
                }
            }
        </script>

这是HTML代码:

<input type="button" value="-" onClick="remInput('plus');">
<input type="text" name="qty" id='qty' size='2' style="text-align: center" disabled value="1">
<input type="button" value="+" onClick="addInput('plus');">

   <div id="plus">
       <input type="file" name="file[]" id="file"><br>
   </div>

谢谢。

1 个答案:

答案 0 :(得分:0)

似乎IE中不支持remove(),在你的代码中添加条件,如果你的浏览器支持特定的功能(在这种情况下是remove()函数)

请参阅以下工作添加。

<script>
 var counter = 1;
            var min = 1;
            var max = 20;
            function addInput(divName) {
                if (counter == max) {
                    alert("Max limit!");
                }
                else {
                    var newdiv = document.createElement('div');
                    var inputid="file"+counter;
                    newdiv.innerHTML = '<input type="file" name="file[]" id='+inputid+'><br>';
                    document.getElementById(divName).appendChild(newdiv);
                    document.getElementById("qty").value++;
                    counter++;
                }
            }
            function remInput(divName) {
                if (counter == min) {
                    alert("Min limit!");
                }
                else {
                    var element = document.getElementById(divName);
                    if(element.lastChild.remove!= undefined)
                    element.lastChild.remove();
                    else
                    element.lastChild.parentNode.removeChild(element.lastChild);
                    document.getElementById("qty").value--;
                    counter--;
                }
            }


</script>