2009-07-09 18 views
5

Bir tablo satırı içeren nesnelerin listesini ilişkilendirmem gereken bir sayfada çalışıyorum ve jQuery kullanıyorum.Öğelerin bir listesini saklamak için jQuery.data kullanma

jQuery.data Ben liste olabilir ne kadar bilmiyorum ve boş olabilir daha fazla gibi

id=4,setting=2 
id=3,setting=1 
... 

gerek oysa sadece bir anahtar ile veri parçasını ilişkilendirmek gibi görünüyor.

Bunu yapmanın makul bir yolu var mı?

cevap

8

jQuery veri olarak bir şey saklayabilirsiniz, böylece bu yapabilirdi:

var myData = {}; 

myData[4] = 2; 
myData[3] = 1; 

$("#myitem").data("mydata", myData); 

Sonra erişebilirsiniz:

var myData = [ { id: 4, setting: 2 }, [ id:3, setting:1 ] }; 

$("#myitem").data("mydata", myData); 

Eğer id tarafından bir şey seçmek isterseniz, bunu yapabilirdi şu şekilde ayarlar:

var value = $("#myitem").data("mydata")[3]; // returns 1 
+0

Öğeye sahipseniz, $ .data (element, "mydata") 'yı kullanmanın çok daha performanslı olduğunu unutmayın. –

1

Şimdi bunu denemek için çok fazla zamanım yok, ancak anahtara karşı basit bir dizgi depolamak yerine, neden bir nesneyi ona karşı saklamıyorsunuz?

$("div").data("blah", {id: 4,setting: 2}); 
var myBlah = $("div").data("blah"); 
var id = myBlah["id"]; 
var setting = myBlah["setting"]; 

Beni üzerinde almak nasıl bildirin ... jQuery dokümanlar yorumlamak.

+0

Ama nesnelerin listesini depolamaya çalışıyorum ... –

+0

Üzgünüz - Kullanıcının tüm dizisini kullanmalıyım. Aktivanın aynı çözümü sağladığını, ancak bir diziyle ve onu suçladığınızı görebiliyorum. Bir çözüm bulup koştuğuna sevindim. – belugabob

+0

Yardımınız için teşekkürler, yine de :) –

0

Anahtar-değer depolamak için listeleri ve JSON nesnelerini depolamak için dizileri kullanabilirsiniz. ue çiftleri.

<div id="DIV1"></div> 
<div id="DIV2"></div> 
<div id="DIV3"></div> 
<div id="DIV4"></div> 
<table><tbody><tr id="TR1"><td><td/></tr></tbody></table> 
<script type="text/javascript"> 
$(function() { 
    $("#TR1").data("blah", [{id: 4, setting: 2}, {id: 3, setting: 1}]); 
    $("#DIV1").text($("#TR1").data("blah")[0].id); 
    $("#DIV2").text($("#TR1").data("blah")[0].setting); 
    $("#DIV3").text($("#TR1").data("blah")[1].id); 
    $("#DIV4").text($("#TR1").data("blah")[1].setting); 
}); 
</script> 
İlgili konular