2013-04-01 2 views
2

Donc j'essaie d'entrer un tableau dans un sélecteur jquery et pour une raison quelconque, je ne peux pas le faire fonctionner du tout. J'ai essayé quelques approches ci-dessous 1er:entrer un tableau d'identifiants dans un sélecteur jquery

var id = ["#id1", "#id2", "#id3"]; 
$(id[0]).css('color', '#000'); 

mon autre tentative:

var id = []; 
for(var x = 0;x < 3; x++){ 
id[x] = x; 
$("#id"+id[0]).css('color', '#000'); 
} 

Je me demande donc ce qui pourrait être l'approche pour résoudre ce?

exemple de ce que j'utilise cela pour:

for(var x = 0;x < 28; x++){ 
function randomizerlet(){ 
randlet[x] = Math.floor(Math.random()*156); 
timesletrun[x] += 1; 
if (masterlet[randlet[x]] == letter[x]){ 
$('#flipL4_1').css('background-position', masterlet[randlet[x]]); 
clearInterval(intervallet[x]); 
} 
else{ 
    if(timesletrun[x] == 300){ 
     masterlet[randlet[x]] = letter[x]; 
     $('#flipL4_1').css('background-position', masterlet[randlet[x]]); 
     clearInterval(intervallet[x]); 
     } 
    else{ 
     $('#flipL4_1').css('background-position', masterlet[randlet[x]]); 
     }} 


     } 
var intervallet[x] = setInterval(function() { 
randomizerlet();}, 10); 
} 
+0

Si vous tentez de faire différentes choses dans la liste, vous ne pouvez pas être efficace. Si vous placez tout dans la couleur des listes au noir, alors la réponse de Matt avec sa suggestion «utiliser une classe» est idéale. – Sanchit

+0

votre première tentative fonctionne bien, regardez: http://jsfiddle.net/MMSrD/ – egig

+0

Est-ce que la fonction randomizerlet [x]() {'fonctionne même? –

Répondre

5

Rejoignez les éléments du tableau en une seule chaîne:

var id = ["#id1", "#id2", "#id3"]; 
$(id.join(',')).css('color', '#000'); 

Ou utiliser une boucle:

for (var i=0; i<id.length; i++) { 
    $(id[i]).css(...); 
} 

Ou un type de boucle différent:

$.each(id, function (i, elt) { 
    $(elt).css(...); 
}); 

Ou un même colombophile sorte de boucle:

var $elements = $.map(id, function (elt, i) { 
    return $(elt); 
}); 
$elements.css(...); 

Tout cela étant dit, il serait probablement préférable d'utiliser simplement une classe commune au lieu d'ID. Chaque fois que vous pensez que vous avez besoin d'indices semblables à des nombres, il est fort probable que vous préfériez utiliser des classes.

+0

Je dois les séparer, pas tous les mêmes. – Keleko

+0

Je ne comprends pas. S'il vous plaît élaborer. –

+0

le $ ("# id1"). Css ('color', '# 000'); est à l'intérieur d'une fonction alors que $ ("# id2"). css ('color', '# 000'); seront dans une fonction différente car ils reçoivent différentes entrées pour .css ('color', 'variable variable'). – Keleko

Questions connexes