2011-10-18 18 views
0

我想根据下拉框的值切换表中某些行的可见性。我已经有了每一行的类,所以我决定将userType添加为<tr>的一个属性(由PHP生成)。但是,当我使用与使用类选择器切换行的可见性相同的功能时,它不适用于$('tr[userType="User"]');。我搜索了为什么这个选择器没有返回正确的数组,但没有任何运气。任何帮助将非常感激。无法使用属性选择器获取数组

功能:

function toggleUserTypeRows(){ 
    var selected = $('#userTypeDropDown').val(); 
    switch (selected){ 
     case 'User': 
      var $rows = $('tr[userType="User"]'); 
      $rows.show(); 
      $('tr[userType="Admin"]').hide(); 
      break; 

     case 'Admin': 
      var $rows = $('tr[userType="Admin"]'); 
      $rows.show(); 
      $('tr[userType="User"]').hide(); 
      break; 
     default: 
      var $rows = $('#tableUsers tr'); 
      $rows.show(); 
    } 
} 
+0

这不是很可能的是,jQuery的解释[USERTYPE如? – biziclop

回答

1
<table> 
    <tr userType="Admin"><td>Row 1</td></tr> 
    <tr userType="User"><td>Row 2</td></tr> 
    <tr userType="Admin"><td>Row 3</td></tr> 
    <tr userType="User"><td>Row 4</td></tr>  
</table> 


<select> 
    <option value="User">User</option> 
    <option value="Admin">Admin</option> 
</select> 

<script type="text/javascript"> 

$('select').change(function(e){ 
    var userType = $(this).val(); 
    $('table tr').show(); 
    $('table tr[userType="'+ userType +'"]').hide(); 
}); 

</script> 
1

使用filter()

例如:

 case 'User': 
     var $rows = $('tr').filter(function(){ 
      return $(this).attr('userType') == 'User'; 
     }); 
     ...