2009-11-26 4 views
2

Si j'ai:tableau récupérer jQuery de la valeur d'attribut

<a id="anchor" href="some link" rel="{ key1: 'value', key2 : 'value'}">text</a> 

Comment récupérer les valeurs dans le « rel attribut » donc je peux les consulter en utilisant la notation par points?

par ex.

$('#anchor').attr('rel').key1 

Répondre

1

Ici vous donnez rel la valeur d'un objet JSON de chaîne de caractères. Vous auriez besoin d'un JSON library et appelez

JSON.parse($('#anchor').attr('rel')).key1 
+0

Je suis en train de définir ces programmes à partir du serveur sur plusieurs éléments, je suppose que je pourrais essayer quelque chose comme: $ ('# '). Data ('"Données": {key1 : 'value', key2: 'value'} '); Je pense que cela a plus de sens en tant que méthode d'installation de données pour peupler le client avec des données du serveur. J'ai stocké des valeurs dans les attributs jusqu'à présent, mais l'utilisation d'une approche comme celle ci-dessus pourrait effectivement avoir plus de sens. Il serait certainement faire pour un balisage plus lisible un code global. Hmm. –

+1

oui, 'data' serait un endroit beaucoup plus approprié pour stocker des données. il a l'avantage de ne pas avoir à analyser JSON d'avant en arrière, et cela n'invalide pas votre balisage. –

3

Vous avez besoin d'un JSON deserializer ou un jQuery JSON Plugin pour convertir la chaîne en un objet JavaScript (s'il vous plaît ne sont pas seulement eval il).

var obj = JSON.parse($('#anchor').attr('rel')); 

fixant directement cet objet à votre lien avec jQuery data pourrait être une option aussi.

+0

+1 pour '$ .data' –

Questions connexes