선별

2013-10-02 1 views
3

에서 옵션에 따라 Optgroups 만들기 다음 내 마크 업선별

<select id = "select_test"> 
<option>aus - testa1</option> 
<option>aus - testa2</option> 
<option>aus - testa3</option> 
<option>bris - testb1</option> 
<option>bris - testb2</option> 
<option>bris - testb3</option> 
<option>melb - testc1</option> 
<option>melb - testc2</option> 
<option>melb - testc3</option> 
</select> 

내가 동적 전에 모든 것을에서 optgroups을 만들려고하고 jQuery를 사용하는 예입니다. 이

<select id = "select_test"> 
<optgroup label = "aus"> 
<option>testa1</option> 
<option>testa2</option> 
<option>testa3</option> 
</optgroup> 
<optgroup label = "brisb"> 
<option>testb1</option> 
<option>testb2</option> 
<option>testb3</option> 
</optgroup> 
<optgroup label = "melb"> 
<option>testc1</option> 
<option>testc2</option> 
<option>testc3</option> 
</optgroup> 
</select> 

될 내가 원하는 것이 무엇의

예는 어떤 도움을 주시면 감사하겠습니다!

답변

7

각 옵션을 반복하면서 값을 분할하여 만들 그룹 이름을 찾아야합니다. 이런 식으로 뭔가 :

var prevGroup, $group = $(); 
$('#select_test option').remove().each(function() { 
    var $option = $(this), 
     values = $option.text().split(' - '), 
     group = values[0]; 

    if (group != prevGroup) { 
     $group = $('<optgroup />', { label: group }).appendTo('#select_test'); 
    } 

    $group.append($('<option />', { 
     text: values[1], 
     value: values[1] 
    })); 

    prevGroup = group; 
}); 

Example fiddle

관련 문제