изменить атрибут данных с помощью jquery

Как я могу изменить

<div data-300=""></div>

to

<div data-500=""></div>

с помощью jquery?

Я не хочу удалять атрибут и заменять его, так как он содержит нужные мне данные, мне просто нужно изменить «300» на «500».


person Daimz    schedule 11.09.2013    source источник
comment
Вам нужно будет заменить его, но это не значит, что вам нужно потерять ценность.   -  person James Montagne    schedule 12.09.2013
comment
возможный дубликат stackoverflow.com/questions/317170/   -  person Brajesh Kumar    schedule 12.09.2013


Ответы (2)


Совсем не универсальный, но он должен работать

var $target = $('div[data-300]'),
    oldData = $target.data('300');

$target.removeAttr('data-300').attr({ 'data-500': oldData });
person Johan    schedule 11.09.2013
comment
Легенда! Спасибо за быстрый ответ! - person Daimz; 12.09.2013

Вот функция, которую вы можете использовать:

function attrChangeName(elem, attr, new_attr) {
  var data = $(elem).attr(attr);
  $(elem).attr(new_attr, data);
  $(elem).removeAttr(attr);
}
person Vlad    schedule 11.09.2013
comment
Это сильно упрощает дело. Спасибо! В интересах облегчения чтения кода (для меня это будет иметь больше смысла при чтении кода) можно ли сделать так, чтобы вызов мог быть примерно таким: $('element').attrChangeName(attr , новый_атрибут); - person Daimz; 12.09.2013
comment
Извините, я собирался это сделать, но у меня не хватило времени. Поэтому я просто воспользовался вашим описанным выше методом, который в любом случае отлично работает... Зачем менять хорошую вещь? :) - person Daimz; 16.09.2013