Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.04.2018, 08:57
Аспирант
Отправить личное сообщение для denis_kontarev Посмотреть профиль Найти все сообщения от denis_kontarev
 
Регистрация: 01.04.2018
Сообщений: 46

Фильтр данных в таблице при заданном условии
Здравствуйте, прошу помочь реализовать идею живой фильтрации данных. Есть таблица с числовыми данными, необходимо отображать только те tr, которые больше числа, которое мы указали в окошке input. Прошу помочь написать код, спасибо.
Есть код поиска в таблице именно по символам, а как сделать, чтоб он искал только числа при заданном диапазоне к примеру >30
$(document).ready(function(){
$("#search").keyup(function(){
_this = this;
$.each($("#filter tbody tr"), function() {
if($(this).text().toLowerCase().indexOf($(_this).val().toLowerCase()) === -1)
$(this).hide();
else
$(this).show();                
});
});
});
Изображения:
Тип файла: png 60.png (18.4 Кб, 4 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 01.04.2018, 09:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от denis_kontarev
те tr
может td?
Ответить с цитированием
  #3 (permalink)  
Старый 01.04.2018, 09:33
Аспирант
Отправить личное сообщение для denis_kontarev Посмотреть профиль Найти все сообщения от denis_kontarev
 
Регистрация: 01.04.2018
Сообщений: 46

сразу исключаем всю строку tr, если условия не подходят
Ответить с цитированием
  #4 (permalink)  
Старый 01.04.2018, 10:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

denis_kontarev,
сделайте минимальный html.
Ответить с цитированием
  #5 (permalink)  
Старый 01.04.2018, 10:11
Аспирант
Отправить личное сообщение для denis_kontarev Посмотреть профиль Найти все сообщения от denis_kontarev
 
Регистрация: 01.04.2018
Сообщений: 46

<div class="form-group">
<input type="text" class="form-control pull-right" id="search" placeholder="Поиск по таблице">
</div>

<table class="simple" id="filter">

<tr>
<td>33%</td>
<td>30%</td>
<td>41%</td>
</tr>

<tr>
<td>56%</td>
<td>20%</td>
<td>40%</td>
</tr>

<tr>
<td>80%</td>
<td>13%</td>
<td>56%</td>
</tr>

</table>


К примеру пишем в поисковой форме число 50 и он показывает только tr с числами больше 50

Последний раз редактировалось denis_kontarev, 01.04.2018 в 10:18.
Ответить с цитированием
  #6 (permalink)  
Старый 01.04.2018, 10:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

фильтрация строк таблицы
denis_kontarev,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
  $("#search").on("input", function() {
    var val = +this.value.trim();
    $.each($("#filter tbody tr"), function(i, tr) {
      var td = [].filter.call(tr.querySelectorAll("td"), function(td) {
        var num = +td.textContent.replace(/\D/g, "");
        return isNaN(val) || !isNaN(num) && val < num;
      });
      $(this).toggle(!!td.length);
    });
  });
});
  </script>
</head>

<body>
<div class="form-group">
<input type="text" class="form-control pull-right" id="search" placeholder="Поиск по таблице">
</div>

<table class="simple" id="filter">

<tr>
<td>33%</td>
<td>30%</td>
<td>41%</td>
</tr>

<tr>
<td>56%</td>
<td>20%</td>
<td>40%</td>
</tr>

<tr>
<td>80%</td>
<td>13%</td>
<td>56%</td>
</tr>

</table>

</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 01.04.2018, 10:35
Аспирант
Отправить личное сообщение для denis_kontarev Посмотреть профиль Найти все сообщения от denis_kontarev
 
Регистрация: 01.04.2018
Сообщений: 46

Спасибо, но то ли я не могу додумать, то ли бог его знает, но ругается на
var num = +td.textContent.replace(/\D/g, "");
Ответить с цитированием
  #8 (permalink)  
Старый 01.04.2018, 10:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

denis_kontarev,
значит у вас в ячейках не то что, что вы показали в макете.
Ответить с цитированием
  #9 (permalink)  
Старый 01.04.2018, 11:59
Аспирант
Отправить личное сообщение для denis_kontarev Посмотреть профиль Найти все сообщения от denis_kontarev
 
Регистрация: 01.04.2018
Сообщений: 46

А можно ли поменять условие только в этой строке? чтоб скрипт воспринимал только числа
if($(this).text().toLowerCase().indexOf($(_this).val().toLowerCase()) === -1)
Ответить с цитированием
  #10 (permalink)  
Старый 01.04.2018, 12:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

denis_kontarev,
постарайтесь разобраться в предложенном решении выше, буду удивлён если кто-то предложит алгоритм без цикла по ячейкам, либо вы что-то не договариваите, либо невнимательно скопировали.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохраннение измененных данных при клике на кнопку Tanya51 Общие вопросы Javascript 0 10.08.2017 11:35
Фильтрация данных в таблице (с другой страницы) Jebber Элементы интерфейса 8 05.03.2015 10:45
Изменение цвета ячейки в таблице, при наведении на строку другой таблицы Psychosonic Общие вопросы Javascript 12 24.11.2010 16:44
Сортировка числовых данных в таблице Vladsss Общие вопросы Javascript 15 01.09.2009 17:02
Вывод данных единожды, при открытии окна? Ggorsh Events/DOM/Window 1 28.04.2009 01:04