Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.08.2015, 17:33
Кандидат Javascript-наук
Отправить личное сообщение для ligisayan Посмотреть профиль Найти все сообщения от ligisayan
 
Регистрация: 19.06.2015
Сообщений: 114

Как заменить значение data атрибута в ссылке?
Всем привет. Хочу заменить значение атрибута 'data-quantity' в ссылке. Как это сделать? через val, html, text, data("data-quantity", number), msglist.setAttribute("data-quantity", number) не получается..
var number = 3;
$('a').attr('data-quantity').val(number);

<a href="#" data-quantity="1">Купить</a>
Ответить с цитированием
  #2 (permalink)  
Старый 06.08.2015, 17:46
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

$('a').attr('data-quantity', number);
Ответить с цитированием
  #3 (permalink)  
Старый 06.08.2015, 18:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

jquery
$(elem).data("quantity", number) записать
var number = $(elem).data("quantity") прочитать
js
elem.dataset.quantity = number записать
var number = elem.dataset.quantity прочитать
Ответить с цитированием
  #4 (permalink)  
Старый 06.08.2015, 18:17
Кандидат Javascript-наук
Отправить личное сообщение для ligisayan Посмотреть профиль Найти все сообщения от ligisayan
 
Регистрация: 19.06.2015
Сообщений: 114

Да, спасибо, я уже и сам справился
$('a').data('quantity',number);

, только непонятно почему не подходят getAttribute и setAttribute или я не умею ими пользоваться
просто через js меняется, а в html коде по-прежнему остается quantity изначальный..

Последний раз редактировалось ligisayan, 06.08.2015 в 18:27.
Ответить с цитированием
  #5 (permalink)  
Старый 06.08.2015, 18:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от ligisayan
msglist.setAttribute
msglist это у вас 1 элемент или несколько?
Ответить с цитированием
  #6 (permalink)  
Старый 07.08.2015, 09:55
Кандидат Javascript-наук
Отправить личное сообщение для ligisayan Посмотреть профиль Найти все сообщения от ligisayan
 
Регистрация: 19.06.2015
Сообщений: 114

Сообщение от рони Посмотреть сообщение
msglist это у вас 1 элемент или несколько?
один. это название такое возможно неудачное
Ответить с цитированием
  #7 (permalink)  
Старый 07.08.2015, 13:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

ligisayan,
тогда должно работать если точно один а не nodeList с одним элементом
Ответить с цитированием
  #8 (permalink)  
Старый 07.08.2015, 20:39
Кандидат Javascript-наук
Отправить личное сообщение для ligisayan Посмотреть профиль Найти все сообщения от ligisayan
 
Регистрация: 19.06.2015
Сообщений: 114

Сообщение от рони Посмотреть сообщение
ligisayan,
тогда должно работать если точно один а не nodeList с одним элементом
вообщем как я понял data меняет код js, а setAttribute html и все работают только до перезагрузки
Ответить с цитированием
  #9 (permalink)  
Старый 08.08.2015, 13:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от ligisayan
все работают только до перезагрузки
Ответить с цитированием
  #10 (permalink)  
Старый 09.08.2015, 08:05
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от ligisayan
вообщем как я понял data меняет код js, а setAttribute html и все работают только до перезагрузки
Метод .data() jQuery вообще не имеет отношения к атрибуту элемента data-var когда речь идет об установке этим методом какой либо переменной.

Если у элемента есть атрибут data-var, то метод element.data('var') вернет значение этого атрибута (начиная с версии jQuery 1.4.3). При этом, если значение этого атрибута корректная json-строка, то метод сразу преобразует это значение в объект, например, если data-var="[2,3]", то .data('var') вернет массив. В случае, если имя атрибута будет иметь более сложное сочетание через дефис, типа data-var-name, то получить его можно в camelCase: element.data('varName').

Но записать/изменить значение в data-var метод .data('var', value) не может, вместо этого он создаст переменную var со значением value, которая будет привязана к элементу, для которого был вызван этот метод (можно привязать к элементу и несколько переменных .data({var1: value1, var2: value2, ....}) ). Для этого и предназначен данный метод. Удалить эту переменную у элемента можно методом .removeData(). А вот метод javascript setAttribute будет изменять значение именно атрибута.

Вот так это выглядит:

<!DOCTYPE HTML> 
<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script> 
$(function() {
    var p = $('p');
    //получили значение атрибута
    alert(p.data('var'));
    //думаем, что изменяем его
    p.data('var', 55);
    //радуемся
    alert(p.data('var'));
    //а на самом деле воз и ныне там
    alert(p[0].getAttribute('data-var'));
});
</script>     
</head> 
<body>
<p data-var="22">Text</p>
</body> 
</html>

После того как элемент получил собственную jq-перменную "var" .data('var') будет обращаться уже к ней, а не к атрибуту data-var элемента.

Последний раз редактировалось laimas, 09.08.2015 в 08:18.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать клик по ссылке с другой ссылки или div ? ilyas-> Элементы интерфейса 15 01.08.2013 12:49
как получить значение ид-а, из текушего хтмл тега dadli Общие вопросы Javascript 2 28.01.2012 15:16
Как зафиксировать постоянно меняющееся значение Kaviton Элементы интерфейса 1 08.01.2012 17:27
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25