您必须将
data-
之后的部分作为参数传递给 .data()
方法,但您正在传递 view
。
解决方案
对于
data-id
,您应该通过 $(this).data('id')
。
注意:
data-
后面的部分必须是小写
然后要比较
data-id
中的多个参数,可以使用 .includes 方法
let $param = 'orange';
$('.sgmt')
.filter(function () {
if ($param == '0') {
return '*';
} else {
return $(this).data('id').includes($param);
}
})
.addClass('sgmt-show');
.sgmt{
color: green
}
.sgmt-show{
color:red
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<div class="sgmt" data-id="orange, apple">First one</div>
<div class="sgmt" data-id="onion, apple">Second one</div>
<div class="sgmt" data-id="onion, grape">Third one</div>