2013-01-14 33 views
7
<select id="mySelect"> 
    <option id="sel01" value="some value">some value</option> 
    <option id="sel02" value="some other value">some other value</option> 
    <option id="sel03" value="maybe me">maybe me</option> 
    <option id="sel04" value="and another one">and another one</option> 
</select> 

Tôi muốn chọn một tùy chọn với việc sử dụng jQuery, nhưng không phải bởi giá trị:jQuery - thiết chọn index bởi các yếu tố id

$("#mySelect").val(1); 

nhưng bởi các yếu tố id.

Cảm ơn bạn đã trả lời.

Trả lời

9

Bạn có thể sử dụng phương thức prop.

var id = 'sel02'; 

$('#mySelect option').filter(function(){ 
    return this.id === id 
}).prop('selected', true); 

hay:

$('#' + id).prop('selected', true); 

Hoặc nếu bạn muốn chọn một tùy chọn dựa trên chỉ số của nó, bạn có thể sử dụng eq phương pháp:

$('#mySelect option').eq(1).prop('selected', true); 
+0

cảm ơn rất nhiều. –

+0

@MarcinBobowski Bạn được chào đón. – undefined

1

Bạn có thể lấy các giá trị phần tử bằng cách sử dụng ID và sử dụng giá trị cho jQuery val().

var elementId = 'sel01'; 
$("#mySelect").val($('#' + elementId).val()); 
+0

Tình yêu theo cách của bạn, nhưng "không xác định" là lần đầu tiên withh phương pháp của mình. Cảm ơn. –

+0

@MarcinBobowski Đó là tùy thuộc vào bạn để chọn giải pháp nào bạn thích hơn :) –

+0

Điều tốt nhất là khả năng tìm hiểu tất cả các cách và hiểu chúng :) –

1

Nếu bạn muốn chọn tùy chọn:

$('#mySelect option#sel02').prop('selected',true); 

nếu bạn muốn nhận được giá trị tùy chọn id chọn của:

$('#mySelect option#sel02').val(); 
3
var id= "sel01"; 

    $('#selectid option').each(function(){ 
     if($(this).attr('id') == id){ 
      $(this).attr('selected',true); 
     } 
    }); 
0

Như thế này. Chỉ cần thay đổi số trong eq (0)

$("#mySelect").val($("#mySelect").children().eq(0).val()); 
1

Hãy thử cú pháp này,

$('select option:selected').attr('id'); 

séc here, nó sẽ chọn tùy chọn dựa trên các giá trị văn bản.

0

Tôi không biết bối cảnh nhưng điều này làm việc cho tôi khi tôi cần thiết để lấy dữ liệu từ json và làm cho các tùy chọn mà combo box cụ chọn:

$("#mySelect option[id='" + someVariable + "']").attr('selected', 'selected'); 
+0

Vui lòng hoàn thành mã các dấu ngoặc ôm không khớp với – Ram

+0

oops, xin lỗi về điều đó :( – AndreSites

Các vấn đề liên quan