Ответ 1
Согласно jQuery()
документации по функциям (псевдоним $()
), вы можете определить атрибуты, события и методы в течение этой секунды параметр.
Итак, все, что вы определили с помощью attr()
, - это честная игра. Это включает в себя атрибуты "данные-все" (которые необычно доступны через $elem.data('whatever')
), однако они не будут сохранены в jQuery.data
, как и любые переменные, определенные через $elem.data('name', 'value')
(по крайней мере, до тех пор, пока вы не назовете $elem.data('whatever')
- см. <а4 > ).
Итак, чтобы уточнить:
var $elem = jQuery('<div/>', { 'data-test': "Testing" });
создаст этот элемент и вернет объект jQuery, содержащий его:
<div data-test="Testing"></div>
Оттуда вы сможете:
jQuery.data($elem[0], 'test'); // => undefined
$elem.data('test'); // => "Testing"
jQuery.data($elem[0], 'test'); // => "Testing"
Конечно, $elem.attr('data-test')
также будет работать.