2016-04-04 7 views
0

ben Sayfanın altındaki birkaç bölüm vardır ve bunların BAZI "boyutu" nin sınıf var bir form ve aşağıdaki gibi bir seçme seçeneği ile bazı HTML ...Seçilen seçim seçeneğindeki sınıf alanını kontrol etmek için Jquery nasıl kullanılır?

 <select id="typeofrequest" name="type"> 
     <option value="">PLEASE SELECT</option> 
     <option value="email" class="color size font">Logo request</option> 
     <option value="email">Image request</option> 
... 

var. Temel olarak, birisi Seç açılır menüsünden "Logo isteği" ("boyut" sınıfına sahip) seçtiğinde, "boy" sınıfının görünmesi/gösterilmesi için diğer div'ları tetiklemesini istiyorum (bunlar görüntülendikleri için: yok ; başlamak).

if ($("#typeofrequest option").hasClass("size")) { 
     $("div.size").show(); 
    } 

Ancak, benim şimdiki koduyla, seçeneğini olursa olsun "boyut" Ekranın sınıfı ile div'ler seçtiğim (yani ben "Resim isteği" seçtiyseniz hala o/koymaktadır diğer div'leri gösterir. Yani açıkça nasıl seçme ve seçenekleri okunur bir şeyler anlayamıyorum herkes yanlış yapıyorum bkz

+0

'$ (" # typeofrequest seçeneği: selected ")' ı deneyin - ancak bu bozuk bir koddur - select değerini kullanın (if ($ ("# typeofrequest seçeneği: selected"). Val() == 'size ') {...} ' –

cevap

2

bu kullanmayı deneyin.?

$('#typeofrequest').on('change', function(e) { 
     if($(this).find('option:selected').hasClass("size")) 
      $('div.size').show(); 
     else 
      $('div.size').hide(); 
    }); 

JS Fiddle demo

+0

Teşekkürler, bu işe yaradı! Başka bir deyim ekleyerek (sınıfta DEĞİLSE sınıfları gizlemek için) gizlemeye çalıştım, ancak bu işe yaramaz gibi görünüyordu. Bu yanlış biçimlendirme mi ?: \t $ ('# typeofrequest'). On ('change', işlev (e) { \t \t eğer ($ (this) .find ('option: selected'). HasClass ("size").)) { \t \t $ ("boyutu. ") show();. \t \t} else { \t \t \t $ (" boyutu.") hide();. \t \t} \t}); – user3304303

+0

@ user3304303 Kodumu bir demo ile de güncelledim. Başkalarının da görebileceği şekilde yardım ederse cevabı kabul et. Teşekkürler ! – Eduard

+0

Çok teşekkürler. Kıvrımlı parantezlerin gerekli olmadığı konusunda hiçbir fikrim yoktu. Ve gerçekten JSFiddle demosunu takdir ediyorum. Tekrar teşekkürler – user3304303

0
You can try this: 

    $(document).on('change', '#typeofrequest', function(){ 
     console.log($(this).find(':selected').val().hasClass('size')); 
     if($(this).find(':selected').val().hasClass('size')){ 
      $("div.size").show(); 
     }else{ 
      $("div.size").hide(); 
     } 
    }); 
İlgili konular