Daimz
Daimz

Reputation: 3281

change data-attribute using jquery

How can I change

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

to

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

using jquery?

I don't want to remove the attribute and replace it as it contains data I need I just need to change the '300' to '500'.

Upvotes: 4

Views: 6377

Answers (2)

Vlad
Vlad

Reputation: 978

Here's a function you can use:

function attrChangeName(elem, attr, new_attr) {
  var data = $(elem).attr(attr);
  $(elem).attr(new_attr, data);
  $(elem).removeAttr(attr);
}

Upvotes: 3

Johan
Johan

Reputation: 35194

Not generic at all, but it should do the job

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

$target.removeAttr('data-300').attr({ 'data-500': oldData });

Upvotes: 4

Related Questions