I have a few div elements like:
<div class="roomnamecta" data-price="1189" data-adult="3">Room 1</div>
<div class="roomnamecta" data-price="578" data-adult="1">Room 2</div>
<div class="roomnamecta" data-price="650" data-adult="2">Room 3</div>
In jQuery I'm able for example to display div which data-adult=
a specific value
// init (first I'm hiding all my divs)
$('.roomnamecta').hide();
// now I'm just showing depending on "data-adult" value
$('.roomnamecta[data-adult="3"]').show();
What I would like to do is something like this:
$('.roomnamecta[data-adult>="3"]').show();
// doesn't work
And better what I want to accomplish is to do for example:
$('.roomnamecta[data-adult>="3"],.roomnamecta[data-price>="1100"]').show();
How to write such a query, do I have to use object? How?
Yes, it is possible to pass a variable into a jQuery attribute-contains selector. The [attribute*=value] selector is used to select each element with a specific attribute and a value containing a string.
jQuery [attribute|=value] Selector The [attribute|=value] selector selects each element with a specified attribute, with a value equal to a specified string (like "en") or starting with that string followed by a hyphen (like "en-us"). Tip: This selector is often used to handle language attributes.
The jQuery #id selector uses the id attribute of an HTML tag to find the specific element. An id should be unique within a page, so you should use the #id selector when you want to find a single, unique element.
Since you can't accomplish this with an attribute selector (like you're trying to do), you would have to iterate over the elements and check.
For instance, you could use the .filter()
method to return the elements whose data-adult
attribute value is greater than or equal to 3:
Example Here
$('.roomnamecta[data-adult]').filter(function () {
return $(this).data('adult') >= 3;
}).show();
For your second query, you could use:
Example Here
$('.roomnamecta[data-adult], .roomnamecta[data-price]').filter(function () {
return $(this).data('adult') >= 3 || $(this).data('price') >= 1100;
}).show();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With