1

以下のコードは、簡潔にするために、私が作業しているものを少し切り捨てたバージョンです。うまくいけば、問題を説明するのに十分です。役立つ場合は、jsfiddle をセットアップできますか?

とにかく: jquery オブジェクトの配列を作成し、値が既に選択されている値の配列にあるものを除外し、結果を選択ボックスに追加しようとしています。

問題は、filter() 操作から返されるものにあると思います。オブジェクトの配列として表示されますが、各オブジェクトは「e.fn.e.init[1]」で始まります。そのオブジェクトの配列を選択ボックスに追加しようとすると、NOT_FOUND_ERR: DOM Exception 8が発生します

var selected_roles = [2,4],
all_roles = [];

// these lines generated from PHP
all_roles.push( $('<option value="3">Doctor</option>') );
all_roles.push( $('<option value="4">Dentist</option>') );
all_roles.push( $('<option value="2">Biscuit Designer</option>') );
all_roles.push( $('<option value="7">International Playboy</option>') );


function getAvailableRoleOptions(){
    var out = all_roles;
    return out.filter( function(element) {
        return $.inArray( parseInt( $(element).attr('value') ), selected_roles ) === -1;
    });
}

$options = getAvailableRoleOptions();

$('#job_select').empty().append( $options );

フィルタ機能は何を返しますか? get() をどこかで使用する必要がありますか? もしそうなら、どこで使用しますか? 私がやろうとしていることさえできますか?私はこれについてすべて間違っていますか?:)

ありがとう :)

4

0 に答える 0