39

I just want to find the element with a particular value for a custom attribute.

E.g. I want to find a the div which has the attribute data-divNumber="6".

var number = 6;
var myDiv = $('[data-divNumber = number]');

I tried using http://api.jquery.com/attribute-equals-selector/ but what I've done doesn't work.

There is precisely one element with that particular value for the attribute.

Emil
  • 8,449
  • 3
  • 27
  • 44
Chro
  • 1,003
  • 2
  • 15
  • 27

4 Answers4

84
var number = 6;
var myDiv = $('div[data-divNumber="' + number + '"]');
Matt Ball
  • 354,903
  • 100
  • 647
  • 710
Ali Foroughi
  • 4,540
  • 7
  • 42
  • 66
8

You need to do some string addition to get the number into your selector and the value needs to be quoted.

var number = 6;
var myDiv = $('[data-divNumber="' + number + '"]');

What you're trying to produce after the string addition is this result:

$('[data-divNumber="6"]');
jfriend00
  • 683,504
  • 96
  • 985
  • 979
2

I think what you need is:

var number = 6;
var myDiv = $('[data-divNumber="'+number+'"]');
legendofawesomeness
  • 2,901
  • 2
  • 19
  • 32
1

With ES6 you can use string interpolation:

let number = 6;
let myDiv = $(`div[data-divNumber="${number}"]`);
Amuxix
  • 41
  • 5