На этом шаге мы рассмотрим использование методов .data() и .removeData().
Библиотека jQuery предоставляет альтернативный использованию расширенных свойств механизм хранения данных, который мы можем применять. Метод .data() записывает или возвращает произвольную информацию, ассоциированную с элементами страницы, а метод .rеmoveData() уничтожает информацию, сохранявшуюся ранее:
$.each(rows, function(index, row) { $(row).data('sortKey', $(row).children('td') .eq(column).text().toUpperCase()); }); rows.sort(function(a, b) { if ($(a).data('sortKey') < $(b).data('sortKey')) return -1; if ($(a).data('sortKey') > $(b).data('sortKey')) return 1; return 0; }); $.each(rows, function(index, row) { $table.children('tbody').append(row); $(row).removeData('sortKey'); });
Рис.1. Еще одно изменение функции сортировки
Полный текст этого примера можно взять здесь.Иногда бывает удобнее применять метод .data() вместо расширенных свойств, поскольку нам чаще приходится работать с объектами jQuery, а не с узлами дерева DOM. Кроме того, это позволяет избежать потенциальных проблем, связанных с утечками памяти в Internet Explorer. Однако далее в нашем примере мы продолжим использовать расширенные свойства, чтобы попрактиковаться в переходе от операций над узлами дерева DOM к операциям над объектами jQuery.
На следующем шаге мы рассмотрим особенности ключей сортировки.