2017-08-25 20 views
6

Şu anda bir jQuery parçacıklarını bir işlevin içinde saklanan bir dizinin içinde depolarım. İşlevimi kod tabanımdan çağırdığımda, her jQuery pasajı yürütülür. Bu yüzden diziden çalışmamı engelliyor.jQuery dizisi içinde saklanan işlevler her seferinde çalıştırılmıyor

Aşağıdaki kod bir örnektir:

var remove = [ 
    jQuery("#mesh option:selected").removeAttr("selected"), 
    jQuery("#pipetype option:selected").removeAttr("selected"), 
    jQuery("#caboption option:selected").removeAttr("selected"), 
    jQuery("#bedsize option:selected").removeAttr("selected"), 
    jQuery("#model option:selected").removeAttr("selected"), 
    jQuery("#year option:selected").removeAttr("selected"), 
]; 


for (var i = 0; i <= amount; i++) { 
    remove[i]; 
} 

Ben deselect() çağrıldığında, sadece birkaç dizi elemanları yerine hepsini idam olduğunu emin olabiliriz?

Teşekkürler!

cevap

5

Yanlış yapıyorsunuz. Dizi elemanlarını kendiniz ilan ettiğinizde yürütülür.

yerine her şeyin sadece 'Bu dışında başka seçme kutuları yoksa etmezsen, ayrıca sadece

$("select option").prop("selected", false); 
3

yapabilirdi

var remove = [ "mesh","pipetype", "caboption","bedsize", "model","year"]; 
for (var i = 0; i <= amount; i++) { 
    jQuery("#"+remove[i]+" option:selected").removeAttr("selected"), 
} 

yapabilirsiniz Hemen idam edilmelerini, bir dizi fonksiyon yapmasını ve () ile döngü içinde çağırmasını isteyin.

var remove = [ 
    () => jQuery("#mesh option:selected").removeAttr("selected"), 
    () => jQuery("#pipetype option:selected").removeAttr("selected"), 
    () => jQuery("#caboption option:selected").removeAttr("selected"), 
    () => jQuery("#bedsize option:selected").removeAttr("selected"), 
    () => jQuery("#model option:selected").removeAttr("selected"), 
    () => jQuery("#year option:selected").removeAttr("selected"), 
]; 


for (var i = 0; i <= amount; i++) { 
    remove[i](); 
} 
İlgili konular