2009-07-24 70 views
11

假設我有一個PHP循環,顯示可以刪除的數據。我使用AJAX,所以當你刪除一行時,它會處理一個PHP腳本,並且該行從頁面中消失。jQuery:如何獲取跨度的內容,並減去1,並用新數字替換跨度的內容?

但是,我有一些說「有5項」。我希望那個「5」在一個項目被刪除時改變。我想最簡單的方法是在Javascript中減去一個。

問題是,我真的不知道如何。如果有人能指引我走向正確的方向,那會很棒。

+0

我已更新我的帖子。現在它可能會幫助你 – 2009-07-24 22:27:15

回答

18

假設數與ID爲 'CNT' 跨度:

$("#cnt").text($("#cnt").text()-1) 

編輯:
更安全的版本:

var cntTag = $("#cnt:first"); 
if (cntTag.Length == 1) 
{ 
    var cnt = parseInt(cntTag.text()); 
    if (!isNaN(cnt)) 
    { 
     cnt--; 
     cntTag.text(String(cnt)); 
    } 
} 
+0

非常感謝!我寧願這樣做比AJAX「刷新」,因爲這是服務器上的壓力較小。我正在使用的服務器相當老,幾乎不能處理我已有的幾個AJAX請求。 – dallen 2009-07-24 22:43:26

+0

我可以看到這在不久的將來會派上用場+1 – JasonDavis 2009-07-25 00:13:37

1

如果有更改,更新完整列表。大約每5秒檢查一次使用AJAX。

或者

There are <span id="number">5</span> items. 

,然後更改跨度ID爲與刪除後當前的行數「數」的值。當你添加一個新的答案時,Stack Overflow使用這個方法。

可以。減去使用

parseInt($("span").html()); 
7

HTML:

There are <span class="numitems">5</span> items. 

JS:

var span = $("span.numitems"); 
span.html(parseInt(span.html()) - 1); 
+0

方式最簡單的使用.... – Mikeys4u 2015-10-25 00:50:32

3

比方說,我們開始有三個:

<p>There are <span id='number'>3</span> items.</p> 
<ol id ='thelist'> 
    <li> one 
    <li> two 
    <li> three 
</ol> 

現在,我們需要一些jQuery來處理列表

$(function(){ 
    $('#thelist').bind('change', function(){ 
    $('#number').html($('#thelist li').length) 
    } 
} 
在更改事件

每次#thelist改變時,它都會更新leng在#號中。這種方法的一個優點是,通過綁定更改事件,您不需要在計時器上設置setInterval或類似的東西。一切都只是做它應該做的。