Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Фильтр таблицы (https://javascript.ru/forum/misc/76578-filtr-tablicy.html)

рони 25.01.2019 10:48

denis_kontarev,
}).trigger("input"); // строка 32

denis_kontarev 25.01.2019 11:17

Пожалуйста немного подробнее
 
Можете пожалуйста подробней пояснить, как связать .trigger("input"), сделал, но безрезультатно:cray:
Цитата:

Сообщение от рони (Сообщение 502627)
denis_kontarev,
}).trigger("input"); // строка 32


рони 25.01.2019 12:11

denis_kontarev,
<!DOCTYPE html>

<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    .ok{
            background-color: #228B22;
            color: #FFFFFF;
    }

    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

    <script>
$(function() {
    $("#cf_1x2").on("input", function() {
        var val = this.value.trim();
        localStorage.inp = val;
        $.each($("#t tbody"), function(i, tbody) {
                var tds = $("td", tbody).filter(function(i, td) {
                var num = td.textContent.match(/\d+(.\d+)?(?=\s*%)/);
                var ok = false;
                if(val && num != null){
                ok = !isNaN(+val) && +val < +num[0];
                };
                $(td).toggleClass("ok", ok);
                return ok || !val;
                });
                $(this).toggle(!!tds.length);
        });
    }).val(localStorage.inp||"").trigger("input");
});

    </script>
</head>

<body>

<input type="text" class="form-control pull-right" id="cf_1x2" placeholder="Движение 1X2 от %" style="width: 100%;">

<table id="t">
        <thead>
                <th>22.01</th>
                <th>Команды</th>
                <th>1</th>
                <th>X</th>
                <th>2</th>
        </thead>
        <tbody>
                <tr class="team"><td>70%</td></tr>
                <tr class="1x2"><td>1</td></tr>
                <tr class="handicap"><td>2</td></tr>
                <tr class="total"><td>3</td></tr>
        </tbody>
        <tbody>
                <tr class="team"><td>40%</td></tr>
                <tr class="1x2"><td>1</td></tr>
                <tr class="handicap"><td>2</td></tr>
                <tr class="total"><td>3</td></tr>
        </tbody>
        <tbody>
                <tr class="team"><td>10%</td></tr>
                <tr class="1x2"><td>1</td></tr>
                <tr class="handicap"><td>2</td></tr>
                <tr class="total"><td>3</td></tr>
        </tbody>
</table>

</body>
</html>

denis_kontarev 25.01.2019 13:24

Огромное спасибо!!

denis_kontarev 11.02.2019 14:45

Проверка класса tr
 
Здравствуйте еще раз друзья, подскажите пожалуйста.
Сейчас код фильтра выглядит так. То есть он берет проверку td (от 2 до 3 ячейки). Скажите, как сделать проверку еще по строкам tr. Допустим брать еще проверку строк класса "team" и "1x2", а остальные tr он не трогал?

$(function() {
    $("#cf_1x2").on("input", function() {
        var val = this.value.trim();
        localStorage.inp = val;
        $.each($("#t tbody"), function(i, tbody) {
                var tds = $("td:nth-child(n + 2):nth-child(-n + 3)", tbody).filter(function(i, td) {
                var num = td.textContent.match(/\d+(.\d+)?(?=\s*%)/);
                var ok = false;
                if(val && num != null){
                ok = !isNaN(+val) && +val < +num[0];
                };
                $(td).toggleClass("ok", ok);
                return ok || !val;
                });
                $(this).toggle(!!tds.length);
        });
    }).val(localStorage.inp||"").trigger("input");
});

рони 11.02.2019 16:19

denis_kontarev,
$("#t tbody")
$("#t .team, #t .1x2")

denis_kontarev 11.02.2019 17:55

Пробовал так уже.
 
Цитата:

Сообщение от рони (Сообщение 503473)
denis_kontarev,
$("#t tbody")
$("#t .team, #t .1x2")

Рони, уже пробовал так. TBODY должен работать как цельный блок, если так сделать, то фильтр сходит с ума, какие то tr показывает, какие то скрывает :cray:
Может можно как то в этой строке?
var tds = $("td:nth-child(n + 2):nth-child(-n + 3)", tbody).filter(function(i, td)

рони 11.02.2019 18:31

denis_kontarev,
$(".team td:nth-child(n + 2):nth-child(-n + 3), .1x2 td:nth-child(n + 2):nth-child(-n + 3)", tbody)

denis_kontarev 11.02.2019 20:30

Спасибо за наводку
 
Цитата:

Сообщение от рони (Сообщение 503475)
denis_kontarev,
$(".team td:nth-child(n + 2):nth-child(-n + 3), .1x2 td:nth-child(n + 2):nth-child(-n + 3)", tbody)

Спасибо огромное за попытку, Рони, но фильтр отказывается работать,с ума сходит, не знаю почему. Не буду Вас мучать;)

рони 11.02.2019 21:56

denis_kontarev,
знать бы, что вы хотите сделать? :)


Часовой пояс GMT +3, время: 22:54.