0

我正在尝试删除列表框中的空值,所以首先我尝试使用循环,然后一个人帮助这样做,但它没有删除空值和空白空间......有些人可以通过 javascript 帮助解决这个问题。

  <script type="text/javascript">
function change()
{
    //document.getElementById("Geography").options[7]=new Option("", "newval", true, false);

    var optionsArr = [];
    optionsArr.push(document.getElementById("Geography").options);
    optionsArr.push(document.getElementById("zone").options);
    optionsArr.push(document.getElementById("country").options);

    var optArrlenght = optionsArr.length;
    for ( var j = 0; j < optArrlenght; j++){
        var options = optionsArr[j];
        var optionslength = options.length
        for (var i = 0; i < optionslength; i++)
        {
            if (options[i].innerHTML == "Null Value" || options[i].innerHTML == "")
            {
                options.removeChild(options[i]);
                // OR
                // options.options[i] = null;
            }       

        }

    }

}

</script>
</head>
<body onload="change()">
Geography:<select id="Geography">

    <option value="0"></option>

    <option value="1">Null Value</option>

    <option value="2">item 2</option>

    <option value="3">item 3</option>

    <option value="4">item 4</option>

    <option value="0">All</option>

</select>
 zone:   <select id="zone" >

    <option value="0"></option>

    <option value="1">Null Value</option>

    <option value="2">item 2</option>

    <option value="3">item 3</option>

    <option value="4">item 4</option>

    <option value="0">All</option>

</select>

country:<select id="country" >

    <option value="0"></option>

    <option value="1">Null Value</option>


    <option value="2">item 2</option>

    <option value="3">item 3</option>

    <option value="4">item 4</option>

    <option value="0">All</option>

</select>
</body>
4

3 回答 3

0

这不是删除 dom 元素的正确方法:.removeChild()应该在元素父级上调用。而不是options.removeChild(options[i]);,尝试:

options[i].parentElement.removeChild(options[i]);

此外,如果要从数组中删除元素,options请调用以下命令:

options.splice(i, 1);
于 2013-11-13T05:49:28.343 回答
0

嗨,无论你是否找到了解决方案,我还是把我的答案放在这里..

http://jsbin.com/awUWAMeN/2/edit

function change()
{
  $('select').each(function() {
    $(this).find('option:contains("Null Value")').remove();

});

}
于 2013-11-13T07:00:39.803 回答
0

您只需要进行以下更改:

1.

<option value="0"></option>

<option value="Null Value">Null Value</option>

<option value="item 2">item 2</option>

<option value="item 3">item 3</option>

<option value="item 4">item 4</option>

<option value="All">All</option>

2.Inside Loop在功能改变中你需要做以下

     if (options[i].value == "Null Value" ) 
     { options.removeChild(options[i]);}   

     if(options[i].innerHTML == "") 
    {     options.removeChild(options[i])} 
于 2013-11-13T06:21:43.590 回答