Jquery kullanarak açılır menüdeki ilk öğe nasıl seçilir?


106

Jquery kullanarak sayfamdaki tüm seçili etiketlerde ilk seçeneği nasıl seçeceğimi bilmek istiyorum.

bunu denedim:

$('select option:nth(0)').attr("selected", "selected"); 

Ama işe yaramadı

Yanıtlar:


193

Bunu dene ...

$('select option:first-child').attr("selected", "selected");

Başka bir seçenek de bu olabilir, ancak aşağıda kodlandığı gibi bir seferde yalnızca bir açılır liste için çalışacaktır:

var myDDL = $('myID');
myDDL[0].selectedIndex = 0;

Değere göre nasıl ayarlanacağına dair bu gönderiye bir göz atın, ilginçtir ancak bu özel konuda size yardımcı olmayacaktır:

Bir açılır listenin seçilen değerini jQuery ile değiştirin


tüm seçili etiketleri istediğim gibi seçmek için kimliğimi değiştirin
Amr Elgarhy

26
şimdi jQuery'de özelliklere .prop()yöntem aracılığıyla erişebilirsiniz . Böylece $("select").prop("selectedIndex",0);, tüm açılır listelerde ilk seçeneği belirlemenin hızlı bir yolunu kullanabilirsiniz.
CBarr

3
Bunun tüm tarayıcılarda yalnızca özniteliği ayarlayarak bir 'değişiklik' olayını tetikleyip tetiklemeyeceğini biliyor musunuz? Chrome'da görünüyor, ancak kapsamlı bir şekilde test edilmedi. Her $('select').trigger('change');ihtimale karşı bir tane daha eklemeyi düşünüyordum . Teşekkürler!
Brian Armstrong

3
var myDDL = $('myID')seçicide hash olmalıdırvar myDDL = $('#myID')
user1069816

1
Bu yöntem benim için iyi çalışıyor:$('select option').first().prop('selected',true);
Lorenzo Magon

13

Seçiciniz yanlış, muhtemelen arıyordunuz

$('select option:nth-child(1)')

Bu aynı zamanda çalışacaktır:

$('select option:first-child')

3
CSS nth-child seçici dizini 0'da değil 1'de başlıyor
Sergey



4

Muhtemelen istediğin şey:

$("select option:first-child")

Bu kod ne

attr("selected", "selected");

"seçili" özelliğini "seçili" olarak ayarlamak

Birinci çocuk olup olmadığına bakılmaksızın, seçilen seçenekleri istiyorsanız, seçici:

$("select").children("[selected]")

1
JQuery 1.6+ kullanıyorsanız attrile değiştirinprop
Jesan Fafon

2

Yanıt veriyorum çünkü önceki yanıtlar jQuery'nin en son sürümüyle çalışmayı bıraktı. Çalışmayı ne zaman durdurduğunu bilmiyorum, ancak dokümantasyon, jQuery 1.6'dan beri özellikleri almak / ayarlamak için .prop () yönteminin tercih edilen yöntem olduğunu söylüyor.

İşte böyle çalıştırdım (jQuery 3.2.1 ile):

$('select option:nth-child(1)').prop("selected", true);

Nakavtjs kullanıyorum ve değişiklik bağlamaları yukarıdaki kodla çalışmıyordu, bu yüzden sonuna .change () ekledim.

İşte çözümüm için ihtiyacım olan şey:

$('select option:nth-child(1)').prop("selected", true).change();

Buradaki belgelerdeki .prop () notlarına bakın: http://api.jquery.com/prop/


2

İşte javascriptçoğu durumda işe yarayan basit bir çözüm:

document.getElementById("selectId").selectedIndex = "0";

1

1. çocuk olup olmadığına bakılmaksızın seçilen seçeneğin metnini kontrol etmek istiyorsanız.

var a = $("#select_id option:selected").text();
alert(a); //check if the value is correct.
if(a == "value") {-- execute code --}

Beni ikinci bir arama kurtardı. Değeri kontrol etmekten çok değiştirmekle ilgilendiğim halde, aradığım şey buydu. $('#myID option:selected').text('NEW STRING');
Ricky Payne

1
    var arr_select_val=[];

    $("select").each(function() { 
        var name=this.name;
            arr_select_val[name]=$('select option:first-child').val();
    });


// Process the array object
     $('.orders_status_summary_div').print(arr_select_val);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.