jQuery选择器,用于使用>或者<

jQuery selector for attributes with values greater than or less than an amount using > or <

本文关键字:gt 或者 lt 选择器 用于 jQuery      更新时间:2023-09-26

我有一些div元素,比如:

<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>

例如,在jQuery中,我可以显示哪个data-adult=是特定值的div

// 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();

我想做的是这样的事情:

$('.roomnamecta[data-adult>="3"]').show();
// doesn't work

更好的是,我想完成的是做例如:

$('.roomnamecta[data-adult>="3"],.roomnamecta[data-price>="1100"]').show();

如何编写这样的查询,我是否必须使用对象?怎样

由于使用属性选择器无法实现这一点(就像您尝试的那样),因此您必须迭代元素并进行检查。

例如,可以使用.filter()方法返回data-adult属性值大于或等于3:的元素

此处示例

$('.roomnamecta[data-adult]').filter(function () {
    return $(this).data('adult') >= 3;
}).show();

对于您的第二个查询,您可以使用:

此处示例

$('.roomnamecta[data-adult], .roomnamecta[data-price]').filter(function () {
    return $(this).data('adult') >= 3 || $(this).data('price') >= 1100;
}).show();