Comment puis-je modifier une valeur unique à l'intérieur d'un localStorage?
J'ai un ensemble d'éléments que pour être sauvé, mais j'essaye de modifier une valeur, après que j'ai récupérer, et avant que je le passe de ma fonction php. Est-il possible de changer un seul élément?
Ma chaîne d'éléments ressemble à ceci:
var args = window.localStorage.getItem("localusers");
start=0&type=1
Je l'enregistrement de la localusers élément comme suit:
window.localStorage.setItem('localusers', $("#profile_form_id").serialize());
Je suis en train de définir la valeur de type 6
Je ne peux pas trouver une méthode qui me permet d'obtenir/définir un élément dans le tableau pour le faire j'ai besoin de parcourir le tableau, modifier la valeur, puis définissez la localusers élément nouveau? Il ne semble pas très efficace, mais je ne vois pas d'autre moyen.
Des idées ou des suggestions?
OriginalL'auteur Paul | 2011-08-26
Vous devez vous connecter pour publier un commentaire.
localstorage
ne pas retourner un tableau ou un objet. Il ne peut stocker une chaîne de caractères.La façon de la contourner, est à
JSON.stringify()
le tableau/objet avant de le transmettre àsetItem
. Puis, lors de la récupération avecgetItem()
, vous exécutezJSON.parse()
.En supposant que c'est un objet, et que vous avez analysé, vous pouvez modifier votre
args
variable avant de l'envoyer:Pour faciliter tout cela, voici une petite aide que vous pouvez appeler:
Si vous incluez ce script, vous pouvez ensuite définir et obtenir des articles à travers
localstorage.get
etlocalstorage.set
, et il va automatiquement convertir & de JSON.retourné à partir de quoi?
localstorage
ne pas retourner un tableau/objet!vous utilisez
.serialize()
de manière incorrecte..serialize()
crée une chaîne d'url de vos champs. Si vous voulez un tableau d'objets, vous devez utiliser.serializeArray()
. Vous pouvez lire à ce sujet ici: api.jquery.com/serializeArray .OriginalL'auteur Joseph Silber
Essayer cette
Comme les autres
JavaScript
objets, vous pouvez traiter lelocalStorage
objet comme un tableau associatif. Au lieu d'utiliser legetItem()
etsetItem()
méthodes, vous pouvez simplement utiliser les crochets.Je pense à l'aide de crochet est mieux que l'appel de la méthode.
Pourquoi encore utiliser des crochets? Ne serait pas dot notation fonctionne tout aussi bien (
localStorage.localusers
,args.type
, etc.)Oui, il fonctionnera également.
Il ne semble pas fonctionner...est-ce parce que je suis sauver ma localStorage élément de données sérialisées? Je l'enregistrement de mes données comme suit: localStorage["localusers"] = $("#profile_form_id").serialize();
OriginalL'auteur ShankarSangoli