2010-11-19 32 views
24

Tôi có HTML sauLàm thế nào để sử dụng JQuery để chọn tùy chọn thứ n

<select onchange="this.form.submit()" name="name"> 
    <option value="9995101E01#17201044055PM">9995101E01#17201044055PM</option> 
    <option value="GRR-Example">GRR-Example</option> 
    <option value="admin">admin</option> 
    <option value="123w">123w</option> 
</select> 

Tôi có thể biết làm thế nào tôi có thể sử dụng JQuery để lựa chọn với giá trị "admin"?

Trả lời

71
$('select[name=name] option:eq(2)').attr('selected', 'selected'); 

Demo.

9

Như thế này:

$("select[name='name'] option:eq(2)").attr("selected", "selected"); 

EDIT:

Để làm những gì bạn muốn trong chỉnh sửa mới của bạn, có nghĩa là, chọn tùy chọn có giá trị của admin:

$("select[name='name'] option:contains('admin')").attr("selected", "selected"); 

See it working.

+0

làm cách nào tôi có thể chuyển một biến thay thế? Tôi cố gắng để đạt được $ ('# id' tùy chọn: eq (variable_name) "). Attr (" selected "," selected "); – Naveen

+0

Gọi val() trên một danh sách lựa chọn sẽ tự động chọn tùy chọn với giá trị đó. Vì vậy, điều này sẽ hoạt động: $ ("select [name = 'name']"). Val ('admin'); – Jordan

+0

Tôi nhận ra rằng bằng cách sử dụng cách tiếp cận "onchange" này không được kích hoạt, bất cứ ai biết một cách để đạt được điều này? –

5

Tôi nghĩ rằng pseudo-class nth-child là những gì bạn đang tìm kiếm:

$('select option:nth-child(3)').attr('selected', 'selected'); 
2

tôi không tư vấn thiết lập giá trị của chọn bằng cách sử dụng .attr('selected', 'selected'). Thực hành không tốt. Nếu hai tùy chọn có thuộc tính 'được chọn' - thì giá trị của lựa chọn là gì?

Dưới đây là phiên bản đơn giản và dễ dàng mà sẽ làm việc:

$('select[name="name"]').val('admin'); 

DEMO

0

Nếu bạn muốn chọn thứ n tùy chọn kích hoạt onchange sự kiện sau đó:

function selectOption(nr) { 
    var select = $("select"); 
    if (select.children().length >= nr) { 
     let value = select.find('option:eq(' + nr + ')').val(); 
     select.val(value).change(); 
    } 
} 
0

Just cập nhật trong trường hợp nó giúp ai đó. Tôi đã có yêu cầu tương tự nhưng trong trường hợp của tôi, trình đơn thả xuống được lưu trữ dưới dạng biến JavaScript. Ngoài ra tôi thích cách Denis Matafonov được đề xuất để làm cho tùy chọn được đề cập được chọn. Vì vậy, đây là khối cuối cùng của mã:

var target_dd = $('select[name=name]'); 
$(target_dd).val($(target_dd).find('option:eq(2)').html()); 
Các vấn đề liên quan