我有一个过滤表的下拉列表。我希望每次对表格进行过滤以仅显示其余(唯一)项目时重新填充下拉列表。目前我有以下功能
function rePopulateSelectList(column, control) {
//wipe the previous drop down
$('#' + control).find('option').remove();
//
$('#adminTable tr').each(function () {
$.unique($(this).find('td:eq(' + column + ')')).each(function () {
var columnText = $(this).text();
$('#' + control).append('<option value="' + columnText + '">' + columnText + '</option>');
});
});
}
下拉列表被重新填充(在select.change()事件上),但是我最终得到的下拉列表选项至少是其两倍,但都不是唯一的
似乎您的代码中可能存在一些问题。传递列索引假定您只需要一个列的值?尝试这样的事情:
function rePopulateSelectList(columnIndex, select) {
$('#' + select + ' option').remove();
var control = $('#' + select), values = [];
$('#adminTable tr').each(function () {
var cell = $(this).find('td:eq(' + columnIndex + ')'),
text = cell.text();
if (values.indexOf(text) == -1) {
values.push(text);
control.append('<option value="' + text + '">' + text + '</option>');
}
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句