2009-08-06 17 views
17

Poszukuję sposobu wypełnienia pola wyboru unikalnymi wartościami z kolumny tabeli przy użyciu jQuery. Do tej pory moje próby były daremne, ale jestem stosunkowo nowy w rozwoju front end, więc mam nadzieję, że ktoś może pokazać mi światło.jquery pobiera wszystkie wartości z kolumny tabeli

Pozdrawiam.

+4

Pokaż nam, co masz do tej pory i jakie napotkano problemy. Dołącz także przykładowy kod źródłowy do tabeli. –

Odpowiedz

40

To powinno wystartować. Zwróć uwagę, że używam zawartości komórki zarówno dla wartości, jak i dla tekstu opcji. Być może będziesz musiał to zmienić, ale nie jest to jasne.

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()); 
+0

brakuje an = w przypisaniu przedmiotów –

+0

Pozdrowienia Russ, dobre miejsce – redsquare

+0

@redsquare Natknąłem się na to w poszukiwaniu czegoś podobnego. W jaki sposób wstawić dodatkową tablicę dla wartości? options.push ('' + item + ''); – trobbins26

2

można użyć jQuery za każdą funkcję:

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); 
} 

przypuszczać 'tbl' jest identyfikator tabeli, „sel2'is id wybrać chcesz wypełnić. Jeśli nie chcesz wykluczać pierwszego wiersza, możesz usunąć tr: gt (0) i umieścić prosty tr w wyrażeniu selektora.

+0

użyj tbody jako wiersz nagłówka powinien być thead – redsquare

Powiązane problemy