删除孩子不工作

时间:2009-08-14 11:37:09

标签: javascript html

我正在做一个网页。因为有一个下拉列表包含一些产品,当我们选择一个项目时,它会在下面显示动态删除按钮。我的问题是,产品被正确删除但是产品ID为5的产品没有被删除?有什么问题?以下是我的代码

<script type="text/javascript>
function validate(frm_name){
var hiddenFeild = document.getElementById('product');
var addedItems = hiddenFeild.value;
var brokenItems = addedItems.split(",");
    if(isEmpty(hiddenFeild.value)){
        alert("No Product Added.");
        return false;
    }
    if(brokenItems.length < 3){
        alert("Please Add One More Product.");
        return false;
    }
    return true;
}
function removeme(id){
compareDiv = document.getElementById('compare_product');
var remDiv = document.getElementById(id);
compareDiv.removeChild(remDiv);
var hiddenFeild = document.getElementById('product');
var addedItems = hiddenFeild.value;
var brokenItems = addedItems.split(",");
hiddenFeild.value = '';
for(var i = 0 ; i < brokenItems.length-1; i++){
    if(brokenItems[i] != id){
        hiddenFeild.value = hiddenFeild.value +brokenItems[i]+',';
    }
}
}
function selectProduct(){
    var flag = 0;
    compareDiv = document.getElementById('compare_product');
    var proValue = document.getElementById('frm_product').value;
    if(proValue != 0){
        var product = proValue.split("productvalue");
        var productid = product[0];
        var productname = product[1];
        var hiddenFeild = document.getElementById('product');
        var addedItems = hiddenFeild.value;
        var brokenItems = addedItems.split(",");
         for(var i = 0 ; i < brokenItems.length; i++){
                    if(brokenItems[i] == productid){    
                        flag = 1;
                        alert('Already Added');
                    }
        }
        if(flag == 0){
            hiddenFeild.value = hiddenFeild.value +productid+',';
            compareDiv.innerHTML = compareDiv.innerHTML + '<div id="'+productid+'" style="height:30px;"><div style="float:left;" id="added_product">'+productname+'</div><div style="float:right;"><input onClick="removeme('+productid+');" id="remove" name="remove" type="button" value="remove" /></div></div>';
        }
    }
}

</script>

1 个答案:

答案 0 :(得分:5)

通常,必须从应删除的节点的父节点调用removeChild。所以试试这个:

function removeme(id) {
    var remDiv = document.getElementById(id);
    remDiv.parentNode.removeChild(remDiv);
    // …
}