我有2个多选字段。我希望在用户选择从中选择的值时运行每个循环。我正在尝试以下代码,这给了我错误。
$('[name=filterPartLang], [name=partViewLang_Edit]').change(function(){
partLang = [];
$($(this)+':selected').each(function(i, selected){
partLang[i] = $(selected).text();
});
});
答案 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]