0

私のページには多くの行があり、各行には次のように選択要素があります。

<tr><td>row1</td><td><select name='action_select1'></td></tr>
<tr><td>row1</td><td><select name='action_select1'></td></tr>
<tr><td>row1</td><td><select name='action_select1'></td></tr>
<tr><td>row1</td><td><select name='action_select1'></td></tr>

....

ここで、選択項目ごとに条件付きでオプション値を追加する必要がありますが、反復時にエラーがスローされ、オブジェクトに要素を追加できません。

 var algSelect=grid.find('select[name=action_col1]');
    var array_sort = [{ name:'None', value:'none'},{name:'Source', value:'source'},{name:'Calculations', value:'calc'}];
    var temp_obj=[];
    for(var k; k<=algSelect.length;k++){
        temp_obj=algSelect[k];
        _.each(array_sort, function(gen) {
           if(some_cond_here)
            temp_obj.append('<option value="' + gen.value +'" title="'+gen.name+'">' + gen.name + '</option>');
        });
    }

選択したアイテムごとに条件付きでオプションを追加するにはどうすればよいですか。

4

1 に答える 1

1

$('select[name="action_col1"]')jQueryオブジェクトを返します-これにはjQueryのすべてのメソッドがあります:.append()、、....css().val()

algSelect[k]一方、はむき出しの DOM ノードを返します。jQuery の API を使用して操作する場合は、$(...).

置き換えてみてください:

temp_obj.append ...

と :

$(temp_obj).append

実際に.appendは、ノードのコレクションでも機能します。あなたの条件を因数分解できる場合:

var algSelect=grid.find('select[name=action_col1]');
var filtered = algSelect.filter(function(){  return some_cond_there; });

filtered.append('<option>'...'</option>');
于 2013-09-30T07:39:48.477 に答える