我正在寻找一种方法,使用jQuery从表列填充具有唯一值的选择框。到目前为止,我的尝试都是徒劳的,但我对前端开发相对较新,所以我希望有人可以告诉我这个问题。
干杯。
答案 0 :(得分:44)
这应该让你开始。请注意,我将单元格内容用于选项的值和文本。您可能需要更改此内容,但问题尚不清楚。
var items=[], options=[];
//Iterate all td's in second column
$('#tableId tbody tr td:nth-child(2)').each( function(){
//add item to array
items.push( $(this).text() );
});
//restrict array to unique items
var items = $.unique( items );
//iterate unique array and build array of select options
$.each( items, function(i, item){
options.push('<option value="' + item + '">' + item + '</option>');
})
//finally empty the select and append the items from the array
$('#selectId').empty().append( options.join() );
答案 1 :(得分:2)
你可以使用jquery的每个函数:
function FillSelect(){
var vals = new Array();
var i=0;
var options='';
$("#tbl tr:gt(0) td:nth-child(2)").each(function(){
var t=$(this).html();
if($.inArray(t, vals) < 0)
{
vals[i]=t;
i++;
}
});
for(var j=0;j<i;j++)
{
options += '<option value="' + j + '">' + vals[j] + '</option>';
}
$("#sel2").html(options);
}
假设'tbl'是您的表的ID,'sel2'是您要填充的select的ID。如果您不想排除第一行,则可以删除 tr:gt(0) ,并在选择器表达式中添加简单的 tr 。< / p>