2009-07-09 29 views
5

Tôi đang làm việc trên một trang mà tôi cần liên kết một danh sách các đối tượng với một hàng của một bảng và tôi đang sử dụng jQuery.Sử dụng jQuery.data để lưu trữ danh sách các mục

jQuery.data dường như chỉ kết hợp một phần dữ liệu với một chìa khóa, trong khi tôi cần thêm như

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

Tôi không biết bao lâu trong danh sách có thể được, và nó có thể là rỗng.

Có cách nào hợp lý để thực hiện việc này không?

Trả lời

8

Bạn có thể lưu trữ bất cứ điều gì như dữ liệu jQuery, vì vậy bạn có thể làm điều này:

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

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

Nếu bạn muốn chọn một cái gì đó bởi id, bạn có thể làm điều này:

var myData = {}; 

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

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

Sau đó, bạn có thể truy cập cài đặt của bạn như sau:

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

Cần lưu ý rằng nếu bạn có phần tử, nó có hiệu suất cao hơn nhiều để sử dụng '$ .data (phần tử," mydata ")' than '$ (phần tử) .data (" mydata ")' –

1

Tôi chưa có đủ thời gian để dùng thử ngay bây giờ, nhưng thay vì lưu trữ một chuỗi đơn giản vào khóa, tại sao không lưu trữ một đối tượng chống lại nó?

Để diễn giải các tài liệu jquery ...

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

Hãy cho tôi biết làm thế nào bạn nhận được trên.

+0

Nhưng tôi đang cố lưu trữ danh sách các đối tượng ... –

+0

Xin lỗi - Tôi nên có toàn bộ mảng. Tôi có thể thấy rằng activa cung cấp cùng một giải pháp, nhưng với một mảng, và bạn đã accteped nó. Tôi vui vì bạn đã có một giải pháp và chạy. – belugabob

+0

Cảm ơn sự giúp đỡ của bạn mặc dù :) –

0

Bạn có thể sử dụng mảng để lưu trữ danh sách và đối tượng JSON để lưu trữ khóa-val cặp ue.

<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> 
Các vấn đề liên quan