0

I have two spans on my site:

<span class="view-toggle"></span>

And I'd like to firstly set data-status="inactive" (to clear it of any settings), and then add data-status="active" to one element.

I have the following:

$('.view-toggle').find().data("status","inactive");
$(button).data( "status", "active");

I can confirm that $(button) correctly identifies the one span that I want to add active to.

I'm not getting any console errors, but I'm also not getting the addition of any data attributes.

Am I using data() incorrectly?

user1486133
  • 1,141
  • 1
  • 16
  • 29
  • What's with the `.find()` without a selector? From the documentation: _Unlike most of the tree traversal methods, **the selector expression is required** in a call to .find()._ – Andreas Aug 23 '16 at 18:11

2 Answers2

2

The find() method doesn't make any sense in your code just remove that.

$('.view-toggle').data("status","inactive");
$(button).data("status", "active");


Use attr() method if you want to reflect the attribute value in HTML code.
$('.view-toggle').attr("data-status","inactive");
$(button).attr("data-status", "active");


Refer : jQuery Data vs Attr?
Community
  • 1
  • 1
Pranav C Balan
  • 110,383
  • 23
  • 155
  • 178
0

There is no use of .find() , without any selector.

To set any attribute use .attr("attr-name","attr-value"); And to get the attr value use .data("data-status");

Akshay Chawla
  • 583
  • 1
  • 6
  • 16