Подсчет элементов один раз после загрузки страницы

#javascript #jquery

#javascript #jquery

Вопрос:

В настоящее время я передаю одно значение из search.php в filtering.php . Я использую $_GET для этого. На filtering.php странице у меня есть таблица, которая автоматически фильтрует на основе слова, введенного в текстовое поле ввода. Я передаю значение в URL, например: http://holaweblearning.co.nf/php_learning/filtering.php?key=Dragoo . Значение из URL берется и помещается в текстовое поле ввода, после чего отображаются результаты. Я могу запустить функцию, которая подсчитывает отфильтрованные результаты на основе слова. Проблема: счетчик результатов отключен, он изначально показывает правильное значение, но после нажатия на результат он добавляет 1 ? ДЕМОНСТРАЦИЯ

 $(document).ready(function($) {

//Trigger key up on search box to show results for word
$('input#filter').trigger('keyup');

//Counts Results
function result_count(){
      var text =  $('.footable tbody tr:not(.footable-filtered)').length;
      $('h5#result_count').text('Number of Results: ' text);
    }
result_count();

//Run on page load
window.setInterval(result_count, 100);

});
 

Комментарии:

1. Это опечатка, пропущенная точка с запятой после запуска keyup?

2. @MelanciaUK — Нет, это просто необязательно в JS.

3. Это может быть необязательно, но не рекомендуется.

4. @MelanciaUK Я забыл разместить ; , сейчас исправлено.

5. Отлично работает в Chrome.

Ответ №1:

Когда вы нажимаете на результат, была добавлена новая строка, подобная следующей, и поскольку этот тип строк НЕ ИСКЛЮЧАЕТСЯ из подсчета, ваш счет увеличится на единицу.

 <tr class="footable-row-detail"><td class="footable-row-detail-cell" colspan="3"><div class="footable-row-detail-inner"><div class="footable-row-detail-row"><div class="footable-row-detail-name">Job Title:</div><div class="footable-row-detail-value">Traffic Court Referee</div></div><div class="footable-row-detail-row"><div class="footable-row-detail-name">DOB:</div><div class="footable-row-detail-value">22 Jun 1972</div></div></div></td></tr>
 

Вероятно, ваша функция должна быть:

 function result_count(){
      var text =  $('.footable tbody tr:not(.footable-filtered,.footable-row-detail)').length;
      $('h5#result_count').text('Number of Results: ' text);
}
 

Чтобы он не учитывал эту строку.

Комментарии:

1. Извините за задержку. Хорошо объяснено! Я внесу соответствующие изменения.