使用jQuery.data存储项目列表

时间:2009-07-09 09:43:54

标签: javascript jquery list

我正在处理一个页面,我需要将一个对象列表与一行表关联起来,而我正在使用jQuery。

jQuery.data似乎只是将一段数据与一个键相关联,而我需要更像

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

我不知道列表可能有多长,而且可能是空的。

有没有合理的方法呢?

3 个答案:

答案 0 :(得分:8)

您可以将任何内容存储为jQuery数据,因此您可以这样做:

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

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

如果您想按ID选择内容,可以这样做:

var myData = {};

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

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

然后您可以像这样访问您的设置:

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

答案 1 :(得分:1)

我现在没有足够的时间尝试它,但是为什么不存储一个对象而不是存储一个简单的字符串呢?

解释jquery文档...

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

让我知道你是怎么过的。

答案 2 :(得分:0)

您可以使用数组存储列表和JSON对象来存储键值对。

<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>