2013-01-09 37 views
0

我在查看数据属性的jquery过滤器的用法,在这种情况下,包含三个数据变量,即团队,专业化和级别的表。请让我知道最好的方法是什么以及典型的使用方法。 这里是我的代码的html:在过滤器函数中使用多个值jquery数据属性示例

<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> 

的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

原来我的错误是我将levels变量重新分配给一个数组,因此清空它,现在它工作得很好。谢谢 – Ego

回答

0

原来我的错误只是我重新声明了变量team []。所以基本上,这个:

$('.jobs') .hide().filter('[data-team="'+team+'"][data-specialization="'+specialty+'"][data-level="'+level+'"]').addClass('num').show(); 

现在工作正常。