2016-08-06 12 views
0

Ich muss Text in einer td einer Tabelle ersetzen, aber mit einer bestimmten Bedingung, meine Tabelle wird dynamisch mit Daten eines DB generiert, so gibt es keine Grenze für die Generierung der Zeilen . Derzeit funktioniert es nur mit einer Zeile wegen der ID, aber ich habe es mit getElementByClassName versucht, aber Google Chrome sagt, dass die Funktion nicht existiert.Ersetze Text mit Bedingung in td jquery

Hier ist mein Tabellencode und mein aktueller JS JQuery-Code:

<table class="table" id="table_headers"> 
       <tr> 
        <th>Nombre</th> 
        <th>Correo</th> 
        <th>Curso inscrito</th> 
        <th style="text-align:center">Pagado</th> 
       </tr> 

       <?php 
       foreach($stmt->FetchAll() as $results) { 
        echo "<tr>"; 
        echo '<td>' . $results['name'] . " " . $results['first_last_name'] . '</td>'; 
        echo '<td>' . $results['user_email'] . '</td>'; 
        echo '<td>' . $results['user_course'] . '</td>'; 
        echo '<td id="user_pay">' . $results['user_pay'] . '</td>'; 
        echo "</tr>"; 
       } 
       ?> 
      </table> 

    <script> 

    var pay = document.getElementById("user_pay").innerText; 
    if (pay == "0") { 
     console.log(pay); 
     $('#user_pay').html('No'); 
    }else if(pay == "1"){ 

     $('#user_pay').html('Si'); 
    } 

</script> 
+0

können Sie diese 'var Pay versuchen = $ (". user_pay"); $ .each (pay, function() { \t var payvalue = $ (this) .text(); \t if (payvalue == "0") { \t \t $ (this) .text ("No ") \t} else if (payvalue == "1") { \t \t $ (this) .text (" Si ") \t} })' verwenden auch 'CLASS' anstelle von 'ID' – guradio

+0

Es ist' Element.getEl ementsByClassName (Klassenname) ' – PHPglue

Antwort

0

Hier ist ein jQuery Weg. Wir nehmen jedes Element mit der Klasse "user_pay". In Bezug auf den Wert bearbeiten wir seinen Inhalt.

(user_pay soll eine Klasse sein, wie id eindeutig sein muss. So ersetzen id="user_pay" durch class="user_pay" in der PHP-Teil des Codes)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table class="table" id="table_headers"> 
 
       <tr> 
 
        <th>Nombre</th> 
 
        <th>Correo</th> 
 
        <th>Curso inscrito</th> 
 
        <th style="text-align:center">Pagado</th> 
 
       </tr> 
 
<tr><td>name first_last_name</td><td>user_email</td><td>user_course</td><td class="user_pay">0</td></tr> 
 

 
<tr><td>name first_last_name</td><td>user_email</td><td>user_course</td><td class="user_pay">1</td></tr> 
 
<tr><td>name first_last_name</td><td>user_email</td><td>user_course</td><td class="user_pay">2</td></tr> 
 
      </table> 
 

 
    <script> 
 

 
$(".user_pay").each(function(index) { 
 
    if ($(this).text()=="0") { 
 
     $(this).html("No"); 
 
    } else if($(this).text()=="1") { 
 
     $(this).html("Si"); 
 
    } 
 
}); 
 
     
 
</script>

+0

mit einer Klasse ... gute Form. Wenn eine ID benötigt wird (für eine DB-Abfrage usw.), können Sie eine ID in die Zeile (tr) setzen. – user1269942

+0

Vielen Dank für die Hilfe ... ich habe nie gedacht, mit .each, jetzt mein Projekt ist fast fertig: D –