Я разрабатываю код с помощью jQuery и должен хранить данные, связанные с определенными элементами DOM. Есть еще несколько вопросов о том, как хранить произвольные данные с помощью элемента html, но меня больше интересует, почему я выбрал бы один вариант над другим.
Скажем, ради чрезвычайно упрощенного аргумента, что я хочу сохранить свойство "lineNumber" с каждой строкой в "интересной" таблице.
Вариант 1 должен был просто установить свойство expando для каждого элемента DOM (я надеюсь, что правильно использую термин "expando" ):
$('.interesting-line').each(function(i) { this.lineNumber = i; });
Вариант 2 будет использовать функцию jQuery data() для связывания свойства с элементом:
$('.interesting-line').each(function(i) { $(this).data('lineNumber', i); });
Игнорируя любые другие недостатки моего кода примера, есть ли веские причины, по которым вы выбрали бы одно средство хранения свойств над другим?