2010-02-12 8 views
3

Pour une raison quelconque, cela fonctionne:Comment transmettre une variable dans une requête jQuery?

var oldText = $("#tayke li:eq(" + theIndex + ")").text(); 

Mais cela ne:

var tayke_li = "#tayke li:eq(" + theIndex + ")" 
var oldTest = $(tayke_li).text(); 

Note: theIndex est un entier.

+2

Vous avez ',' manquer avant la ligne 2 ou est-ce juste une faute de frappe? – Darmen

+2

une autre faute de frappe par rapport à la première est oldText est devenu oldTest (* x -> s *). Si vous alertez cela pour voir si cela fonctionne, ça va échouer .. –

+1

Quand vous dites que ça ne marche pas, est-ce que ça ne veut pas dire que vous voulez ou que le code est en train de lancer une erreur? –

Répondre

0

-t-elle différente si vous mettez le point-virgule à la fin de la ligne, puis:

var tayke_li = "#tayke li:eq(" + theIndex + ")"; //<--- 

J'ai mis en place un exemple simple, et il fonctionne très bien:

alert($("#tab1").length); 
var s = "#tab" + String(1); //alerts "1" 
alert(s); //alerts "#tab1" 
alert($(s).length); //alerts 1 

En outre, essayez une distribution explicite de theIndex à une chaîne en utilisant String(). Avez-vous revérifié ce qui est stocké dans tayke_li

Points-virgules requis?

Do you recommend using semicolons after every statement in JavaScript?

What is the consequence of this bit of javascript?

Should I use semicolons in JavaScript?

http://www.webmasterworld.com/forum91/521.htm

+0

ahhh, juste une faute de frappe. ne fait aucune différence si – Phil

+0

vient d'essayer var tayke_li = "#tayke li: eq (" + String (theIndex) + ")"; pas de chance – Phil

+0

essayez 'var tayke_li =" #tayke li: eq ("+ theIndex.toString() +") "' – Darmen

1

Il fonctionne dans les deux sens. Je l'ai refait et ça a marché. Vérifiez la variable theIndex pour les modifications et la portée. Essayez de le remplacer par un codage en dur 1

en ajoutant des informations sur la version de jQuery à la question, et une spécification de navigateur serait bien aussi.

+0

oldText! = OldTest est la seule explication pourquoi cela ne devrait pas fonctionner à mon humble avis;) mais ce n'est pas ce que j'avais mis comme réponse. – naugtur

0

essayer

var oldText = $("#tayke li:eq("+parseInt(theIndex)+")").text(); 

ou

var oldText = $("#tayke li").eq(theIndex).text(); 
Questions connexes