jquery - 带有多个参数的 jQuery 过滤
问题描述
我在这里需要一些帮助,我花了 1 天时间但仍然无法成功。
<div data-src-object="1" data-src-color="blue" data-src-color="green">Product1</div>
<div data-src-object="2" data-src-color="blue" data-src-color="red">Product2</div>
<div data-src-object="3" data-src-color="green">Product3</div>
<div id="filter">
<span class="label label-info" value="blue">Blue</span>
<span class="label label-default" value="red">Red</span>
<span class="label label-default" value="green">Green</span>
</div>
$('div[data-src-object]').filter(function(){
return ( )
}).hide();
“仅显示其 data-src-color 作为 .label-info 中的值存在的对象,其余隐藏”
在此示例中,只有产品 1 和产品 2 可见
我认为最接近的是:
$(this).attr('data-src-color')!=$('#filter .label-info').val()
alert($(this).attr('data-src-color'))
但是我注意到警报只显示每个对象的第一种颜色
解决方案
您拥有的一种选择是data-src-color
使用逗号分隔值。
//Get all values of elements with class label-info
let val = $(".label-info").map(function() {return $(this).attr('value')}).get();
//Select all data-src-object and show all
//Filter the data
//Hide data-src-object with no color on val variable
$('div[data-src-object]').show().filter(function() {
let data = $(this).data('src-color').split(',') //Get the src-color data and split to form an array
return !$(data).filter(val).length; //If 2 arrays dont have a common value, return as true
}).hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div data-src-object="1" data-src-color="blue,green">Product1</div>
<div data-src-object="2" data-src-color="blue,red">Product2</div>
<div data-src-object="3" data-src-color="green">Product3</div>
<div id="filter">
<span class="label label-info" value="blue">Blue</span>
<span class="label label-default" value="red">Red</span>
<span class="label label-default" value="green">Green</span>
</div>
推荐阅读
- python - 如何按列分组并将信息存储在列表中以避免丢失?
- typescript - 对象属性值数组的动态接口
- windows - GetProcessIoCounters 错误代码 998
- javascript - 使用 js 制作了一个 colorcyle,并希望在单击停止按钮时终止它的执行
- flask - Flask 将表单参数传递给函数
- java - PropertiesConfiguration 不使用符号链接重新加载
- python - 如何解决这个预期的 CUDA 在 PyTorch 中出现 CPU 错误?
- python - 如何修复自定义消息框以在父 python pyqt5 的新线程中工作
- deep-learning - 当输出是浮点数数组时,pytorch中的适当损失函数
- javascript - 在 React Native 中向数组添加新对象