2016-11-23 6 views
1

Hallo kann jemand wissen, ist es möglich, dies zu tun?wie zu verwenden .find richtig in jquery für Wert erhalten

$(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(); 
      } 
     }); 

und PHP-Datei wie diese

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

, was ich will zu tun ist, ich versteckte chechbox Funktion erstellen wollen, wenn $ Liste [ "Spieler"] 0 = aber ich bin verwechseln, wie ich habe versucht, take Wert .find (tr td.test) und wenn .find (tr td.test) = 0, dass Tisch versteckt wird

, dass der so

wie zu tun zu benutzen? Dieser Code ist jetzt immer noch fehlerhaft. Danke für jede Hilfe

Antwort

1

Beachten Sie zuerst, dass die delegate() Methode veraltet ist. Sie sollten stattdessen on() verwenden. Wenn Sie eine Version von jQuery verwenden, die älter als 1.7 ist, müssen Sie sie upgraden, idealerweise auf mindestens 1.12.

Sie sollten auch das Ereignis change verwenden, wenn Sie mit Optionsfeldern und Kontrollkästchen für bessere Zugänglichkeit arbeiten.

Um Ihre aktuelle Problem zu lösen Sie filter(), wie diese verwenden:

$('#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); 
}); 

In diesem Beispiel habe ich die Notwendigkeit, negiert die if Aussage, indem sie den Booleschen Wert aus der checked Eigenschaft auf die toggle() Methode.

Working example

+0

dank Mann für deine Antwort, aber ich habe Probleme, weil ** ** habe 2 Werte, Ergebnis wie 0/8 oder 0/5 nicht nur 0. ich will nur nochmal fragen, ist das effizient wenn ich das so mache? '/' jetzt ist dieser Code @Rory McCrossan – Pentolan

+0

Yep - das ist völlig in Ordnung und wie würde ich es auch reparieren. –

Verwandte Themen