2009-11-06 4 views

Antwort

9

Sie benötigen parseInt, um Strings als Zahlen zu behandeln.

$("#shortfall").text(parseInt($("#shortfall").text()) + 1); 
+1

, dass einige Verwirrung, wenn der Anfangswert ist, sagen wir, "077" verursachen könnte: parseInt ("077") + 1 = 64. –

+0

Haha gut. Aber wer benutzt heutzutage Oktale? =) – BalusC

+0

Wie haben Sie festgestellt, dass es sich um eine ganze Zahl handelt? Was ist, wenn es eine Dezimalzahl ist? parseInt ("0.34") = 0 – tvanfosson

2

Wenn es zum Browser kommt, wird Ihr Ausdruck ausgewertet und in eine Zahl umgewandelt. Um jQuery zu verwenden, würden Sie einfach den Textwert des Bereichs abrufen, ihn in eine Zahl umwandeln und dann den Textwert ersetzen. Sie müssen den Wert in eine Zahl konvertieren, bevor Sie die Addition durchführen, oder es wird eine String-Verkettung durchgeführt.

$("#shortfall").each(function() { 
    $(this).text(Number($(this).text()) + 1); 
}); 

Aktualisiert: Ich bin jede Verwendung zu zeigen, wie Sie dies tun würden, eine generische Selektor, der eine Sammlung von Eingaben akzeptieren könnte. In Ihrem Fall, wenn Sie wissen, dass es genau einem Element entspricht, können Sie es optimieren, mit dem Risiko, es neu schreiben zu müssen, wenn Sie möchten, dass der Code auf mehrere Elemente angewendet wird. Bedarfstext() verwenden (oder HTML()), da das Element ein SPAN ist, keine Eingabe:

var span = $("#shortfall"); 
span.text(Number(span.text()) + 1); 

aktualisiert.

+0

Wozu dient diese() Funktion? Es gibt nur einen davon. – BalusC

+0

Ich denke, der Wert kann nur durch $ ('# Fehlbetrag) .attr (' Wert ') erhalten werden; – Steven

+0

@Steven: Nein, per Text(). Es ist kein Attribut, sondern nur der Körper. – BalusC

1

$(document).ready(function(){ 
 
    $("#increment").click(function(){ 
 
    $(".sl-no").html(function(){ 
 
     $(this).html(parseInt($(this).html())+1); 
 
    }); 
 
    }); 
 
});
table { 
 
    font-family: arial, sans-serif; 
 
    border-collapse: collapse; 
 
    width: 100%; 
 
} 
 

 
td, th { 
 
    border: 1px solid #dddddd; 
 
    text-align: left; 
 
    padding: 8px; 
 
} 
 

 
tr:nth-child(even) { 
 
    background-color: #dddddd; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
    <button id='increment'>Click to Increment</button> 
 
<table> 
 
    <tr> 
 
    <th>Sl</th> 
 
    <th>Company</th> 
 
    <th>Contact</th> 
 
    <th>Country</th> 
 
    </tr> 
 
    <tr> 
 
    <td class='sl-no'>1</td> 
 
    <td>Alfreds Futterkiste</td> 
 
    <td>Maria Anders</td> 
 
    <td>Germany</td> 
 
    </tr> 
 
    <tr> 
 
    <td class='sl-no'>2</td> 
 
    <td>Centro comercial Moctezuma</td> 
 
    <td>Francisco Chang</td> 
 
    <td>Mexico</td> 
 
    </tr> 
 
    <tr> 
 
    <td class='sl-no'>3</td> 
 
    <td>Ernst Handel</td> 
 
    <td>Roland Mendel</td> 
 
    <td>Austria</td> 
 
    </tr> 
 
    <tr> 
 
    <td class='sl-no'>4</td> 
 
    <td>Island Trading</td> 
 
    <td>Helen Bennett</td> 
 
    <td>UK</td> 
 
    </tr> 
 
    <tr> 
 
    <td class='sl-no'>5</td> 
 
    <td>Laughing Bacchus Winecellars</td> 
 
    <td>Yoshi Tannamuri</td> 
 
    <td>Canada</td> 
 
    </tr> 
 
    <tr> 
 
    <td class='sl-no'>6</td> 
 
    <td>Magazzini Alimentari Riuniti</td> 
 
    <td>Giovanni Rovelli</td> 
 
    <td>Italy</td> 
 
    </tr> 
 
</table>

+1

Bitte fügen Sie eine Erklärung hinzu. –