2009-07-24 60 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或类似的东西。一切都只是做它应该做的。