将多个属性数据值与单个属性数据值匹配

时间:2014-05-13 22:57:41

标签: jquery attributes filtering

如何使用具有多个属性值的元素来选择具有单个匹配属性值的div,并显示或隐藏那些匹配的div。我在这里有相反的工作(单个attritbute匹配div具有多个属性):http://jsfiddle.net/jtspetersen/cEgvB/2/

基本上,我有' X'职位和" Y"教训。我想为每节课分配一个唯一的属性值,当我点击具有多个属性值的位置X的链接时,我希望显示与多个属性选择器匹配的课程。

<a class="pos" href="#" data-position="1 2 4">Your Position 1</a>
<a class="pos" href="#" data-position="3 4">Your Position 2</a>
<br />

<div id="title"><em>Lessons</em></div>
<div id="lesson1" class="lesson" data-lesson="1">Lesson 1</div>
<div id="lesson2" class="lesson" data-lesson="2">Lesson 2</div>
<div id="lesson3" class="lesson" data-lesson="3">Lesson 3</div>
<div id="lesson4" class="lesson" data-lesson="4">Lesson 4</div>

所以当我点击位置1时,请参阅课程2,3,4。

很抱歉,如果这已经得到解答,但我找不到任何干净利落的事情。

1 个答案:

答案 0 :(得分:1)

您必须拆分位置列表并检查每节课

$('.pos').on('click', function() {
    var arr = $(this).data('position').split(/\s+/);

    $('.lesson').hide().filter(function() {
        return $.inArray( $(this).data('lesson').toString(), arr ) != -1;
    }).show();
});

FIDDLE