JQuery: Как получить содержимое диапазона, вычесть на 1 и заменить содержимое диапазона на новый номер?

Скажем, у меня есть цикл PHP, который отображает данные, которые вы можете удалить. Я использую AJAX, поэтому, когда вы удаляете строку, она обрабатывает PHP script, и строка исчезает со страницы.

Однако у меня есть что-то, что говорит "Есть 5 предметов". Я бы хотел, чтобы "5" изменилось при удалении элемента. Я решил, что самый простой способ - вычесть один из них в Javascript.

Проблема в том, что я действительно не знаю, как это сделать. Если бы кто-то мог указать мне в правильном направлении, это было бы здорово.

Ответ 1

Предполагая, что счетчик находится в интервале с id 'cnt':

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

Edit:
Безопасная версия:

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

Ответ 2

HTML:

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

JS:

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

Ответ 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 изменяется, он обновляет длину в #number. Одним из преимуществ этого подхода является то, что привязывая событие изменения, вам не нужно устанавливатьInterval на таймер или что-то в этом роде. Все просто делает то, что должно было.

Ответ 4

Обновите полный список, если что-то изменилось. Проверяйте его с помощью AJAX каждые 5 секунд.

или

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

а затем измените значение span с id 'number' с текущим числом строк после удаления. Qaru использует этот метод, когда новый ответ публикуется при добавлении нового.

Вы можете использовать

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