Использование jQuery.data для хранения списка элементов - PullRequest
5 голосов
/ 09 июля 2009

Я работаю над страницей, где мне нужно связать список объектов со строкой таблицы, и я использую jQuery.

jQuery.data, кажется, просто связывает часть данных с ключом, тогда как мне нужно больше как

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

Я не знаю, насколько длинным может быть список, и он может быть пустым.

Есть ли разумный способ сделать это?

Ответы [ 3 ]

8 голосов
/ 09 июля 2009

Вы можете хранить что угодно как данные 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 голос
/ 09 июля 2009

У меня нет большого количества времени, чтобы попробовать это сейчас, но вместо того, чтобы хранить простую строку с ключом, почему бы не сохранить объект против него?

Перефразируя документы jquery ...

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

Дайте мне знать, как вы поживаете.

0 голосов
/ 09 июля 2009

Вы можете использовать массивы для хранения списков и объекты 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...