2012-07-03 38 views
15

Hi cần phải thay đổi các chỉ số được chọn trong khi khác đã được thay đổi .. Ví dụ: tôi cóThay đổi chỉ số được lựa chọn sử dụng jquery

<select id="selector"> 
<option>No 1</option> 
<option>No 2</option> 
</select> 
<select id="selected"> 
<option>ONE</option> 
<option>TWO</option> 
</select> 

bây giờ tôi muốn chỉ số $ được lựa chọn để thay đổi khi # selector của chỉ mục được thay đổi .. như khi tôi thay đổi thành "No 2" combobox khác sẽ thay đổi thành "TWO". tha thứ cho tôi cho câu hỏi newbie nhưng im mới để jquery ^^

Trả lời

28
$('#selector').change(function() { 
    var idx = this.selectedIndex;   
    $("select#selected").prop('selectedIndex', idx); 
}); 
+0

thx .. nó làm việc :) tôi biết nó chỉ là đơn giản nhưng kiến ​​thức của tôi isnt rằng xD lớn – None

+1

Đối với tất cả những gì cần phải biết (vì tôi đã làm): 'idx 'ở đây giữ giá trị' 0' hoặc '1'. '

7

tôi muốn đề nghị:

$('#selector').change(
    function(){ 
     var index = this.selectedIndex; 
     $('#selected option').eq(index).prop('selected',true); 
    }); 

JS Fiddle demo.

Tài liệu tham khảo:

+0

+1, đánh tôi quá nhanh – diEcho

3

Chỉ cần sử dụng JavaScript thường xuyên vì jQuery dường như không cần thiết cho việc này:

document.getElementById('selector').onchange = function() { 
    document.getElementById('selected').selectedIndex = this.selectedIndex; 
} 

Working DEMO

3

với jQuery 1.7.2

$(document).on('change', '#selector', function(){ 
    var si = this.selectedIndex 
    $('#selected option').eq(si).prop('selected',true); 
});​ 

Working DEMO

0

Các selectedIndex bắt đầu từ 0.

Nếu danh sách thả xuống cho phép nhiều lựa chọn nó sẽ chỉ trả lại chỉ số của các tùy chọn đầu tiên được chọn.
Giá trị "-1" sẽ bỏ chọn tất cả các tùy chọn (nếu có).
Nếu không có tùy chọn nào được chọn, thuộc tính SelectedIndex sẽ trả về -1.

$('#idselect').change(function() { 
    var index = this.selectedIndex; 
    //... 
}); 
Các vấn đề liên quan