37

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,169
  • 3
  • 26
  • 44
Chro
  • 963
  • 2
  • 14
  • 26

4 Answers4

81
var number = 6;
var myDiv = $('div[data-divNumber="' + number + '"]');
Matt Ball
  • 344,413
  • 96
  • 627
  • 693
Ali Foroughi
  • 4,480
  • 7
  • 40
  • 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
  • 637,040
  • 88
  • 896
  • 906
2

I think what you need is:

var number = 6;
var myDiv = $('[data-divNumber="'+number+'"]');
legendofawesomeness
  • 2,851
  • 2
  • 18
  • 32
0

With ES6 you can use string interpolation:

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