我在研究数据属性的jquery过滤器的用法,在这种情况下,包含三个数据变量的表,即团队,专业化和级别。请告诉我最好的方法是什么,以及典型的使用方法是什么。 这是我的代码html:
<table data-team="<?php print $name['team']; ?>" data-specialization="<?php print $name['speciality']; ?>" data-level="<?php print $name['level']; ?>" cellpadding="0" cellspacing="0" border="0" width="670px" class="jobs"><tr><td>
<tr><td colspan="4"><strong><?php print $name['title'] ?></strong></td>
<td></td><td></td><td></td></tr>
<tr>
<td width="100">Location : </td>
<td colspan="3"><?php print ($name['location']);?> </td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td> Job Code : </td>
<td width="460"><?php print $name['id'] ?></td>
<td></td>
<td></td>
<td><a data-action="showDesc,jumpTo" href="javascript:;" id="<?php print($name['id']);?>" class="more">More Details </a></td>
</tr></td></tr>
</table>
我从另一个Stack Overflow问题得到的javascript,它可以根据一个匹配属性进行显示,这是我的代码:
$("#search").click(function() {
var team=$('#selectOne').val();
var specialty=$('#selectTwo').val();
var level=$('#selectThree').val();
var teams=[];//
var special=[];
var level=[];
//teams=$('.jobs').data('team');
//alert(teams);
$(".jobs").hide();
$('.jobs').filter(function(){
return $(this).data('team') === team;
}).show();
});
});
我想将所有数据团队属性放入数组中,迭代它,然后检查每个表是否包含它,在这种情况下是否包含下一个数组,检查等等。如果数据值匹配,则显示。
答案 0 :(得分:0)
原来我的错误只是我重新声明了变量team []。所以基本上,这个:
$('.jobs') .hide().filter('[data-team="'+team+'"][data-specialization="'+specialty+'"][data-level="'+level+'"]').addClass('num').show();
现在工作正常。