Ответ 1
Давайте посмотрим в documetation jQuery, что .data()
:
.data()
Храните произвольные данные, связанные с соответствующими элементами, или возвращайте значение в именованном хранилище данных для первого элемента в наборе согласованных элементов.
.data( key, value )
Описание: Хранить произвольные данные, связанные с соответствующими элементами.
ключ
Тип:
String
Строка, обозначающая набор данных для установки.
стоимость
Тип: Объект
Новое значение данных; это может быть любой тип Javascript, включая Array или Object.
Используя $('#testButton').data('target','#testModal2')
вы не будете изменять атрибут data-target
но вы сохраните строку "#testModal2"
в поле "target"
. Затем $('#testButton').data('target')
вернет "#testModal2"
.
Это правда, что .data('key')
может использоваться для возврата значения атрибута data-key
. Но вы не можете установить его с помощью .data('key', 'newValue'
).
Чтобы установить значение атрибута, наиболее распространенным и простым способом является использование .attr()
.
Итак, ответ прост: измените data
в attr
и используйте data-target
вместо target
:
$('#testButton').attr('data-target','#testModal2');