JQuery: как хранить id записей для данных из ajax-запроса в динамически создаваемых html-элементах - PullRequest
0 голосов
/ 04 января 2011

Вероятно, заголовок вопроса довольно загадочный, но я постараюсь объяснить здесь, поэтому, пожалуйста, держитесь за меня:)

Предположим, эта конфигурация:

  • на стороне сервера - приложение PHP, отвечающее на запросы с данными (список элементов, сведения об одном элементе и т. Д.) В формате json
  • на стороне клиента - приложение JQuery, отправляющее ajax-запрос в это приложение PHP и создающее HTML-контент, соответствующий полученным данным

Так, например: клиент запрашивает «список всех животных с именами, начинающимися с« A »», получает ответ json от сервера, и для каждого «животного» создает HTML-гизмо, например, div с описанием животных или что-то в этом роде. , На самом деле не имеет значения, каким будет HTML-элемент, но он должен точно указывать на конкретную запись, «содержав» id этой записи.

И вот моя дилемма: это хорошее решение использовать для этого свойство "id"? Так было бы как:

<div id="10" class="animal">
<p>
This is animal of very mysterious kind...
</p>
</div>

<div id="11" class="animal">
<p>
And this one is very common to our country...
</p>
</div>

где id = "10" - это, конечно, признак того, что это представление записи с id = 10.

Или, может быть, мне следует сохранить этот идентификатор записи в каком-то специальном теге, например

<record_id>10</record_id> 

и оставить "id" строго таким, каким он должен быть (css selector)?

Мне нужен этот идентификатор записи для дальнейших действий, таких как обновление базы данных с помощью некоторого пользовательского ввода или удаление некоторых "животных" или создание новых или чего-либо, что будет необходимо. Все манипуляции будут выполняться с JQuery и ajax-запросами, а ответы будут визуализироваться также при динамическом создании html-интерфейса.

Я уверен, что кому-то приходилось иметь дело с такими вещами раньше, поэтому я был бы благодарен за некоторые советы по этой теме.

Ответы [ 2 ]

1 голос
/ 04 января 2011

Вы можете использовать для этих целей data () , предоставляемые jQuery API.

Для хранения данных вы можете использовать

$("element").data("record-id", 5);

Для получения значения вы можете использовать

$("element").data("record-id");

data() хранит данные таким образом, что они защищены от любых утечек памяти.

Подробнее о data() методе можно прочитать здесь .

0 голосов
/ 04 января 2011

Вы должны использовать метод данных, чтобы сохранить произвольные данные в элементе и затем извлечь их. Пример:

var elm = $('<li>').data('record_id', 5);

И получение просто:

elm.data('record_id');
...