jQuery tableau passe en argument dans la fonction
Je suis en train de passer un tableau en argument dans une fonction
Voir l' --> violon <--
De ce que j'ai testé, il semble que la fonction est la lecture de l'argument est une chaîne plutôt qu'un tableau. Comment puis-je passer le tableau en argument dans la fonction?
HTML
<button id='arr1'>Click for Array 1</button>
<button id='arr2'>Click for Array 2</button><br/><br/>
<div id='mainstuff'>
<p>When you click button, text should be added</p>
</div>
jQuery
$(document).ready(function() {
var arr1 = ["one", "two", "three"];
var arr2 = ["eleven", "twelve", "thirteen", "fourteen"];
$('button').click(function() {
var myval = $(this).attr('id');
showstuff(myval);
});
function showstuff(myval) {
var x = "<p>The new text is " + myval[2] + "</p>";
$('#mainstuff').append(x);
}
});
EDIT: le Violon a été mis à jour pour corriger les erreurs de syntaxe.
Vous êtes de passage d'une chaîne, pas un tableau. Pouvez-vous préciser votre question?
Je viens de remarquer. Je mettrai à jour bientôt. Merci
Je viens de remarquer. Je mettrai à jour bientôt. Merci
OriginalL'auteur Sanya | 2013-06-10
Vous devez vous connecter pour publier un commentaire.
Vous ne devriez pas faire cela. N'essayez pas d'appeler des variables dynamiquement, c'est à dire sans connaître leurs noms. Vous pouvez le faire à pousser dans certaines circonstances, mais c'est une mauvaise idée.
La meilleure solution ici est d'utiliser un objet et de notation crochets pour obtenir une valeur de l'objet de façon dynamique:
NB que j'ai changé
$(this).attr('id')
àthis.id
pour beaucoup des performances accrues.much increased performance
*tousse*cet appel de fonction". Évidemment, il sera relativement mineur dans le grand schéma des choses.
Merci. Que faire si mes tableaux multi-dimensionnels. var arr1 = [{"x1":"", "x2:"deux", "x3":"trois"},{"x4":"quatre","x5":"cinq","x6":"six"}];
Puis ajouter que dans l'
values
objet. Des objets Javascript et d'accès à l'objet est généralement assez intuitif...OriginalL'auteur lonesomeday
Vous ne pouvez pas passer dans les valeurs de chaîne pour être converti directement aux objets.
Au lieu de stocker vos tableaux comme une des paires clé-valeur, puis essayez d'y accéder.
Remplacer
arrays[myVal][2]
avecarrays[myVal][0][key]
ouarrays[myVal][1][key]
Je vous remercie. Vous êtes très utile
OriginalL'auteur Sushanth --
Vous devez stocker vos variables de tableau de données dans un objet commun (ou de la fenêtre de la portée, ce qui est une mauvaise pratique) que vous pouvez récupérer plus tard:
Puis de récupérer cette variable par le nom de la chaîne:
new Object()
au lieu de l'objet vide littérale{}
de nos jours, à moins que vous avez à soutenir les anciens et obscurs, les navigateurs.OriginalL'auteur Lochemage