【发布时间】:2018-08-23 16:34:41
【问题描述】:
我想知道是否可以同时拥有多个“数据组”并像这样过滤它们:
<div data-st='["1", "2", "3"]' data-nd='["4", "5", "6"]' data-rd='["7", "8", "9"]' />
获取我的所有项目,其中“data-st”包含 1 OR 2 AND “data-nd=" 包含 4 OR 5 AND "data-rd" 包括 7 OR 8。
我已经尝试了很多东西,但我无法弄清楚...... :(
为了让它更复杂... ST、ND 和 RD 可以是动态的吗?
想要的结果是所有匹配的元素:
data-st == 1 || data-st == 2 && data-nd == 4 || data-nd == 5 && data-rd == 7 || data-rd == 8
还有动态值...
var values = { hello: [1,2,3], world: [4,5,6]}
<div data-hello='["1","2","3"]' data-world='["4","5","6"]' />
<button data-group="genre" data-value="animation">Animation</button>
<button data-group="genre" data-value="comedy">Comedy</button>
<button data-group="genre" data-value="drama">Drama</button>
<button data-group="actor" data-value="John Doe">John Doe</button>
<button data-group="actor" data-value="Laura Smith">Laura Smith</button>
<ul>
<li data-genre='["animation", "comedy"]' data-actor='["John Doe", "Laura Smith"]'>
Black Panther
</li>
<li data-genre='["comedy"]' data-actor='["John Doe"]'>
Spiderman
</li>
<li data-genre='["drama"]' data-actor='["John Doe"]'>
Superman
</li>
<li data-genre='["animation"]' data-actor='["Laura Smith"]'>
Batman
</li>
</ul>
所以当我点击“动画+喜剧”时。我应该看“黑豹+蜘蛛侠+蝙蝠侠” 之后,我点击“John Doe”。我现在应该只看到“黑豹+蜘蛛侠”
因为类型是动画或喜剧并且演员是John Doe
【问题讨论】:
-
请同时添加想要的结果。
-
@NinaScholz 我认为 OP 希望按该类别过滤 dom..
-
“ST、ND 和 RD 可以是动态的吗?”是什么意思?
-
@ArupRakshit 而不是 data-st 来使用来自对象的键,例如。
var x = { hello: [1,2,3], world: [4,5,6]}所以 div 应该看起来像<div data-hello='[1,2,3]' data-world=[4,5,6] /> -
你说的是
"data-st" equals 1 OR 2,但我看到是data-st='["1", "2", "3"]'.. 你的意思是包括1还是2?
标签: javascript filter shuffle