如何从 data-id 中的多个参数中过滤

问题描述 投票:0回答:1
javascript jquery filter
1个回答
0
投票

您必须将

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>

© www.soinside.com 2019 - 2024. All rights reserved.