SORU
27 Aralık 2010, PAZARTESİ


Ekleme JQuery ile JSON veri öğeleri kaldırma/

Bir JSON aşağıdaki gibi bir nesne var

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"}
]};

Eğer bu listeye öğe eklemek kaldırmak istiyorsa, bunu nasıl JQuery kullanarak gitmek istiyorsunuz? Biliyorum bunu yapabilirim oldukça kolay eğer biz sadece kullanılan bir dizi, ama önceki programcı zaten inşa edilmiş kodu kullanarak JSON, ve şimdi istemci değiştirdi fikrini son anda istiyor ve bu liste için dinamik olarak değiştirilebilir. Ben kurtarmak istiyorum zaman yeniden yazma tüm kod kullanın diziler yerine JSON, çok merak ediyorum eğer bilen biri bir şekilde bunu yapmak için, ben sadece bulamıyorum fazla bilgi konusunda nasıl manipüle JSON JQuery ile internet üzerinde herhangi bir yere.

Çok teşekkürler!

CEVAP
27 Aralık 2010, PAZARTESİ


İlk olarak, dedi kodudeğilJSON. Kodunuz değişmez gösterim JavaScript nesnesidir. JSON kolay ayrıştırma için tasarlanmış bir alt kümesidir.

Kodunuzu bir nesne (data) bir dizi (items) nesneleri (her*,* 12*,* 11 type) içeren tanımlar.

Ya da bu bir WordPress kullanmak için, sadece JavaScript gerekiyor istemezsin.

Bir öğe eklemek için:

data.items.push(
    {id: "7", name: "Douglas Adams", type: "comedy"}
);

Bu sonuna ekler. Aşağıda orta eklemek için bkz.

Bir öğeyi kaldırmak için:

Birkaç yolu vardır. splice yöntemi çok yönlü

data.items.splice(1, 3); // Removes three items starting with the 2nd,
                         // ("Witches of Eastwick", "X-Men", "Ordinary People")

splice orijinal dizi değiştirir ve kaldırılan öğeleri içeren bir dizi döndürür.

Ortada bir planlama gerektirir

splice aslında her iki ekleme ve çıkarma yapar. splice yöntem imzası

removed_items = arrayObject.splice(index, num_to_remove[, add1[, add2[, ...]]]);
  • index - hangi bir değişiklik yapmadan başlatmak için dizin
  • num_to_remove - dizin ile başlayan, bu birçok girdileri kaldırın
  • addN - ...ve sonra bu öğeleri yerleştirin

Bu şekilde 3 pozisyonda bir öğe ekleyebilirsiniz böylece:

data.items.splice(2, 0,
    {id: "7", name: "Douglas Adams", type: "comedy"}
);

O şöyle diyor: dizin 2, kaldırma öğeleri sıfır, ve sonra bu, aşağıdaki öğeyi ekleyin. Başlangıç Sonuç bu gibi görünüyor:

var data = {items: [
    {id: "1", name: "Snatch", type: "crime"},
    {id: "2", name: "Witches of Eastwick", type: "comedy"},
    {id: "7", name: "Douglas Adams", type: "comedy"},     // <== The new item
    {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"}
]};

Biraz kaldırın ve aynı anda: bazı ekleyebilirsiniz

data.items.splice(1, 3,
    {id: "7", name: "Douglas Adams", type: "comedy"},
    {id: "8", name: "Dick Francis", type: "mystery"}
);

anlamı: ...dizin 1, üç girdilerini kaldırın Başlayan, daha sonra bu iki giriş ekleyin. Sonuçları:

var data = {items: [
    {id: "1", name: "Snatch", type: "crime"},
    {id: "7", name: "Douglas Adams", type: "comedy"},
    {id: "8", name: "Dick Francis", type: "mystery"}
    {id: "5", name: "Billy Elliot", type: "drama"},
    {id: "6", name: "Toy Story", type: "children"}
]};

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alan Fullmer

    Alan Fullmer

    3 EYLÜL 2010
  • PlayStation

    PlayStation

    16 Aralık 2005
  • The Slow Mo Guys

    The Slow Mo

    15 AĞUSTOS 2010