使用$(this)在每个循环中选择多个值

时间:2014-07-22 11:21:59

标签: jquery this

我有2个多选字段。我希望在用户选择从中选择的值时运行每个循环。我正在尝试以下代码,这给了我错误。

 $('[name=filterPartLang], [name=partViewLang_Edit]').change(function(){   
        partLang = [];              
        $($(this)+':selected').each(function(i, selected){ 
            partLang[i] = $(selected).text();                               
        });                                                             
    });

2 个答案:

答案 0 :(得分:1)

尝试使用.find()搜索后代,并在检索到的集合上使用.map().get()将文本分组到数组中,

partLang = $(this).find(':selected').map(function(){
  return $(this).text();
}).get();

完整代码,

$('[name=filterPartLang],[name=partViewLang_Edit]').change(function(){
 partLang = $(this).find(':selected').map(function(){
      return $(this).text();
 }).get();
});

答案 1 :(得分:1)

尝试

$('[name=filterPartLang], [name=partViewLang_Edit]').change(function () {
    var partLang = [];
    $(this).find(':selected').each(function (i, selected) {
        partLang[i] = $(selected).text();
    });
});

或使用.map()

$('[name=filterPartLang], [name=partViewLang_Edit]').change(function () {
    var partLang = $(this).find(':selected').map(function (i, selected) {
        return $(selected).text();
    }).get();
});

在您的选择器中$($(this)+':selected')将生成[object Object]:selected,因为$(this)会返回toString()将返回[object Object]

的对象