Si je fais:

console.log($.param(classNameMap));

Je reçois

_1987=%20_1987%20fadeOut&=%20%20fadeOut

J'aurais besoin de _1987 fadeOut car ceux-ci doivent devenir des classes:

<span class="_1987 fadeOut"></span>

Voici comment j'obtiens le json:

var classNameMap = <?php echo JSON_encode($classesForCountries); ?>;

Qui donne:

{_1987: " _1987 fadeOut", "": "  fadeOut"}
1
rob.m 17 avril 2018 à 04:00

4 réponses

Meilleure réponse

Faites simplement decodeURI($.param(classNameMap)). La chaîne imprimée dans la console est codée. Cela les décodera. Mais la réponse CertainPerformace est probablement ce que vous vouliez. Je réponds directement à ce que vous avez demandé.

2
Luis Paulo 17 avril 2018 à 01:13

$ param est utilisé pour créer une chaîne qui peut être utilisée dans une URL. Par conséquent, il utilisera «% 20» au lieu des espaces blancs.

Vous voudrez peut-être utiliser Object.values (). Cela vous donnera toutes les valeurs de l'objet. Vous pouvez ensuite utiliser .join ('') pour le transformer en chaîne.

Par exemple:

Object.values({_1987: " _1987 fadeOut", "": "  fadeOut"}).join(' ')

J'aurais besoin d'un peu plus de contexte pour comprendre exactement quelle sortie vous recherchez, mais cela devrait vous mettre sur la bonne voie.

0
Dustin 17 avril 2018 à 01:14

Si l'objet est {_1987: " _1987 fadeOut", "": " fadeOut"}, utilisez simplement la notation d'objet ordinaire pour accéder aux valeurs qu'il contient:

const classNameMap = {_1987: " _1987 fadeOut", "": "  fadeOut"};
console.log(classNameMap._1987);

N'utilisez pas jQuery pour cela, vous ne ferez que compliquer les choses.

Pour accéder à la propriété (très mauvaise pratique) d'une chaîne vide, utilisez ['']:

const classNameMap = {_1987: " _1987 fadeOut", "": "  fadeOut"};
console.log(classNameMap['']);
3
CertainPerformance 17 avril 2018 à 01:17

Vous pouvez utiliser la notation suivante pour accéder aux valeurs:

const classNameMap = {_1987: " _1987 fadeOut", "": "  fadeOut"};

console.log(classNameMap["_1987"]);

for (const key of Object.keys(classNameMap)) {
   console.log(key, classNameMap[key]);
}
0
Pritam Banerjee 17 avril 2018 à 01:15