下面的代码是我正在使用的一个略微截断的版本,为了简洁:希望它足以说明问题。如果它有帮助我可以设置一个jsfiddle吗?
无论如何:我正在创建一个jquery对象数组,然后过滤掉任何值在已经选择的数组中的值,然后尝试将结果附加到我的选择框。
我认为问题在于我从filter()操作中得到了什么。它显示为一个对象数组,但每个对象都以“e.fn.e.init [1]”开头。当我尝试将该对象数组附加到选择框时,我得到 NOT_FOUND_ERR:DOM异常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(),如果是,在哪里?我甚至可以做我想做的事吗?我错了吗? :)
谢谢:)