2016-11-23 50 views
1

你好可以有人知道是否有可能这样做?如何使用.find在jquery中正确获取值

$(document).ready(function(){ 
     $('body').delegate('#check-hide-empty-table', 'click', function(){ 
      if ($(this).is(':checked')) { 
       alert("checked") 
       $('table').find('tr td.test').parents('tr').hide(); 
      } 
      else { 
       alert("uncheck") 
       $('table').find('tr td.test').parents('tr').show(); 
      } 
     }); 

和PHP文件中像这样

</script> 
<table id="myTable" class="table table-responsive table-hover table-striped table-fixed tablesorter"> 
    <thead> 
     <th><input type="checkbox" value="hide" id="check-hide-empty-table"> Hide Empty</th> 
    </thead> 

    <tbody> 
    <?php 
     $first = false; 
     foreach ($data["data"] as $list) { 
      $isfull = $list["Players"] == $list["MaxUsers"] ? true : false; 
    ?> 

     <tr class="tabClicker" data-tab="tabs-1" id="<?=$list["Id"];?>"> 
      <td class= "test"><?= $list["Players"]."/".$list["MaxUsers"];?></td> 
     </tr> 
     <?php } ?> 
    </tbody> 
</table> 

我想要做的是,我想创建隐藏chechbox功能时$列表[ “玩家”] = 0但我搞不清如何到,所以我试图用取值为.find(TR td.test)如果.find(TR td.test)= 0,该表将被隐藏

如何做到这一点?此代码现在仍然是错误的。感谢您的任何帮助

回答

1

首先请注意,delegate()方法已被弃用。您应该使用on()。如果您使用的是1.7以上版本的jQuery,则需要升级它,理想情况下至少为1.12。

在处理单选按钮和复选框以提高可访问性时,您还应该使用change事件。

解决您最实际的问题,你可以使用filter(),像这样:

$('#myTable').on('change', '#check-hide-empty-table', function() { 
    $('table').find('tr td.test').filter(function() { 
     return $(this).text().trim() == "0"; 
    }).parents('tr').toggle(!this.checked); 
}); 

在这个例子中,我从checked属性提供布尔值toggle()方法否定了if声明的必要性。

Working example

+0

感谢的人对你的答案,但我有问题,因为** <?= $名单[ “玩家”。 “/”。$列表[ “MAXUSERS”] ;?> **有2个值,结果像0/8或0/5不只是0.我只想再问一次,如果我这样做是否有效? '<?= $ list [“Players”]?>/<?= $ list [“MaxUsers”];?>'now this code is work @Rory McCrossan – Pentolan

+0

Yep - 这非常好,我也会修复它。 –

相关问题