Viac na
Pridávanie/odstraňovanie položiek z objektu JavaScript pomocou jQuery
Mám nasledujúci objekt JavaScript:
var data = {items: [
{id: "1", name: "Snatch", type: "crime"},
{id: "2", name: "Witches of Eastwick", type: "comedy"},
{id: "3", name: "X-Men", type: "action"},
{id: "4", name: "Ordinary People", type: "drama"},
{id: "5", name: "Billy Elliot", type: "drama"},
{id: "6", name: "Toy Story", type: "children"}
]};
Ak by som chcel do tohto zoznamu pridávať/odstraňovať položky, ako by som to urobil pomocou jQuery? Klient chce, aby sa tento zoznam dal dynamicky upravovať.
82
3
Po prvé, váš citovaný kód nie je JSON. Váš kód je objektový literálny zápis v jazyku JavaScript. [JSON][1] je jeho podmnožinou určenou na jednoduchšie analyzovanie.
Váš kód definuje objekt (
data
) obsahujúci pole (items
) objektov (každý sid
,name
atype
).Na to nepotrebujete ani nechcete jQuery, stačí JavaScript.
Pridanie položky:
To sa pridá na koniec. Pre pridanie do stredu pozri nižšie.
Odstránenie položky:
Existuje niekoľko spôsobov. Spôsob [
splice
][2] je najuniverzálnejší:splice
upraví pôvodné pole a vráti pole odstránených položiek.Pridanie v strede:
splice
v skutočnosti vykonáva pridávanie aj odstraňovanie. Signatúra metódysplice
je:index
- index, od ktorého sa majú začať vykonávať zmenynum_to_remove
- počnúc týmto indexom odstráňte tento počet záznamovaddN
- ...a potom vložte tieto prvkyTakže môžem pridať prvok na 3. pozíciu takto:
To znamená, že: Počnúc indexom 2 odstráňte nulové položky a potom vložte túto nasledujúcu položku. Výsledok vyzerá takto:
To vôbec nie je JSON, sú to len objekty Javascriptu. JSON je textová reprezentácia údajov, ktorá používa podmnožinu syntaxe jazyka Javascript.
Dôvod, prečo nemôžete nájsť žiadne informácie o manipulácii s JSON pomocou jQuery, je ten, že jQuery nemá nič, čo by to dokázalo, a vo všeobecnosti sa to vôbec nerobí. Manipulujete s údajmi vo forme objektov Javascriptu a potom ich premeníte na reťazec JSON, ak to potrebujete. (JQuery však má metódy na konverziu.)
To, čo máte, je jednoducho objekt, ktorý obsahuje pole, takže môžete využiť všetky znalosti, ktoré už máte. Na prístup k poľu stačí použiť
data.items
.Napríklad na pridanie ďalšej položky do poľa pomocou dynamických hodnôt:
Je to len javascriptový objekt, takže s
data.items
môžete manipulovať rovnako ako s bežným poľom. Ak tak urobíte:vaše pole
položky
bude o 1 položku kratšie.