2014-05-13 64 views
0

如何使用具有多个属性值的元素来选择具有单个匹配属性值的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

抱歉,如果这已回答了,但我没能找到任何干净做到这一点。

+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

+0

太棒了!那就是我正在寻找的东西。谢谢您的帮助! – user3634423