2015-09-22 14 views
5

Całkiem proste. To jest mój kod bardzo nieefektywne:Jak dodać zmienną licznika do nazwy zmiennej?

var slider1 = new Slider("#survey1", { 
    precision: 2, 
    value: 5 
}) 
var slider2 = new Slider("#survey2", { 
    precision: 2, 
    value: 5 
}) 
var slider3 = new Slider("#survey3", { 
    precision: 2, 
    value: 5 
}) 
var slider4 = new Slider("#survey4", { 
    precision: 2, 
    value: 5 
}) 
var slider5 = new Slider("#survey5", { 
    precision: 2, 
    value: 5 
}) 

Jestem pewien, że to może być bardziej efektywnie musiał zrobić, należy przejść do „# survey13”, ale pominięto resztę celu zaoszczędzenia miejsca. Może pętla for? Jak mogę dodać licznik do nazwy zmiennej i identyfikatora z odniesieniem?

Odpowiedz

9

Można powiedzieć, jak poniżej

var sliders = [] 
for (var i = 1; i <= 13; i++) { 
    var slider = new Slider("#survey" + i, { 
     precision: 2, 
     value: 5 
    }); 
    sliders.push(slider); 
} 

Więc rzeczywiście Twój slider1 jest sliders[0] i slider2 jest sliders[1] i tak dalej.

4

Możesz użyć pętli for, aby utworzyć suwak z każdą pozycją. Możesz dodać instancję suwaka w tablicy i użyć jej później.

var options = { 
    precision: 2, 
    value: 5 
}; 
var slider = []; 

for (var i = 1; i <= 13; i++) { 
    slider.push(new Slider("#survey" + i, options)); 
} 

Jeżeli wsparcie wtyczki wiele selektorów

var slider = new Slider("#survey1, #survey2, #survey3 ...", { 
    precision: 2, 
    value: 5 
}); 

Innym sposobem byłoby przypisywanie wspólną klasę do wszystkich elementów i przy użyciu tej klasy przypisać suwak. Jak wspomniano powyżej, zależy to od definicji Slider.

var slider = new Slider(".slider", { 
    precision: 2, 
    value: 5 
}); 
2

Spróbuj z tablicy:

var sliders = []; 
var cfg = { 
    precision: 2, 
    value: 5 
}; 
for (var i = 1; 13 >= i; i++) 
    sliders[i] = new Slider("#survey" + i, cfg); 

Jeśli chcesz nazwali zmienne następnie przejść do obiektu:

var sliders = {}; 
var cfg = { 
    precision: 2, 
    value: 5 
}; 
for (var i = 1; 13 >= i; i++) 
    sliders['survey' + i] = new Slider("#survey" + i, cfg); 
0

nie można zmienić odwołanie id ale można go utworzyć z php przed stronie obciążenia

<?php 
$i=0; 
for($i;$i<n;$i++) 
{ 
echo 'var slider = new Slider("#survey'+$i+'", { 
precision: 2, 
value: 5 
})';} 
?> 
+0

Dlaczego wprowadzasz PHP? –

+0

@ Czy jest nowy i chciał tylko pomóc. – HopefullyHelpful

+0

@sirmagid Pytania mają "javascript" -tag, więc użytkownik szuka tylko rozwiązań javascript. Jeśli użytkownik szukał "php" i "javascript", miałby oba tagi. Jeśli jesteś dobry w php, kliknij "Tagi" u góry strony i wyszukaj php, pytania. – HopefullyHelpful

1

Lepiej niż tablica, jak sugerowali inni, jest użycie obiektu:

var id = 'survey', 
    sliders = {}, 
    i = 13; 

do { 
    sliders[id + i] = new Slider('#' + id + i, { 
    precision: 2, 
    value: 5 
    }); 
} while(i--); 

Następnie można użyć obiektu utworzoną: sliders.survey1, sliders.survey2 itp!

Powiązane problemy