2

一連の選択ボックスを設定して、かなり大きなデータセットを使用可能なチャンクにすばやくフィルター処理しようとしています。そして、私は非常に近いですが、.not() セレクターを使用する (またはそれを取り出す) かどうか、または .attr= (または .attr!= )。

何が起こっているかを見ることができるように、ここにフィドルがあります:

http://jsfiddle.net/yD5cG/3/ (最上位の選択を変更しても、最下部の選択ボックスは変更されないという事実は無視してください。これについて心配する必要はありません)。

私はサイトをトロールし、必要なものに近いコードをたくさん見つけましたが、配列の解析がそれを台無しにしていると思いますか? この時点では、物事を複雑にしすぎているのか、単純化しすぎているのかわかりません。(これは基本的に、JQuery を使用した単純な多対多フィルターの試みです)。

何でもありがとう、最も基本的なアイデアでさえ...

4

1 に答える 1

2

証明: http://jsfiddle.net/iambriansreed/KBKEV/

var options = $('#selectbox2').html();
//store original options
$("#selectbox1").change(function() {
    var selected = this.value.split(',');
    // get selected value and make it an array
    $('#selectbox2').html(options);
    // reset the box to the original options
    $('#selectbox2 option').filter(function(){
        if(this.value.indexOf(',') == -1){
            // simple single values
            return $.inArray(this.value, selected) == -1;
        }else{  
            // check each value
            var values = this.value.split(',');
            for(i in values){
                if($.inArray(values[i], selected) > -1)
                    return false;            
            }
            return true;  
        }  
    }).remove();    
    // remove any options not in the array of selected values
});​

実用的なフィドルと段階的な説明。別の質の高い答え。

于 2012-05-05T01:47:31.940 に答える