2009-11-06 11 views

Odpowiedz

9

Potrzebujesz parseInt do obsługi ciągów jako liczb.

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

To może spowodować pewne zamieszanie, gdy wartość początkowa jest, powiedzmy, "077": parseInt ("077") + 1 = 64. –

+0

Haha dobre. Ale kto dziś używa oktetów? =) – BalusC

+0

Jak ustaliłeś, że jest to liczba całkowita? Co jeśli jest to dziesiętny? parseInt ("0.34") = 0 – tvanfosson

2

Zanim przejdzie do przeglądarki, Twoje wyrażenie zostanie ocenione i przekształcone w liczbę. Aby użyć jQuery, po prostu uzyskasz wartość tekstową zakresu, skonwertujesz ją na liczbę, a następnie zastąp wartość tekstu. Konieczne będzie przekonwertowanie wartości na liczbę przed wykonaniem dodawania lub wykonanie połączenia ciągłego.

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

Updated: Używam każdego, aby pokazać, jak można to zrobić przy użyciu wybieraka rodzajowe, które mogą przyjąć zbiór wejść. W twoim przypadku, jeśli wiesz, że pasuje do dokładnie jednego elementu, możesz zoptymalizować go z ryzykiem konieczności przepisania go, jeśli chcesz, aby kod był stosowany do wielu elementów.

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

Updated: potrzebę użycia tekstu() (lub html()), ponieważ element jest SPAN, a nie wejście.

+0

do czego służy funkcja each()? Jest tylko jedna z nich. – BalusC

+0

Myślę, że wartość można uzyskać tylko przez $ ("# niedobór) .attr (" wartość "); – Steven

+0

@Steven: nie, według tekstu(). To nie jest atrybut, ale tylko ciało. – 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

Proszę dodać wyjaśnienie. –