0

リストボックスのnull値を削除しようとしているので、最初にループを試してみたところ、1人の男がこの方法を手伝ってくれましたが、null値と空のスペースを削除していません... 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

次の変更を行うだけです。

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.関数変更のループ内で、次のことを行う必要があります

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

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