Как получить значение tr в фильтре - PullRequest
0 голосов
/ 24 сентября 2019

У меня проблемы с захватом данных в фильтре jquery.Я пытался найти решение, но не смог его найти.Я довольно новичок в Jquery, поэтому считаю, что это может быть тривиальным ответом.

Мне нравится проходить через мой массив, проверяя его по значению ячеек. Как получить текущее значение / (это) значение ячейки?

РЕДАКТИРОВАТЬ: Спасибо за помощь, окончательное решение какследующим образом.Где dateToSearchFor - массив строковых дат, а nth-child (2) - мой столбец дат в моей таблице.

  $("#UnfinishedTable tr").filter(function () {
    if (this.id !== 'headerRow') {
        var isItThere = false;
        var data = $(this).find("td:nth-child(2)").html();//my dates column
        datesToSearchFor.forEach(function (entry) {
            if (data == entry) {against are array of dates
                isItThere = true;
            }
        });
    }
    if (isItThere) {//if one was found show the row else hide it
        $(this).show()
    }
    else {
        if (this.id !== 'headerRow') {
            $(this).hide()
        }
    }
});

Ответы [ 3 ]

1 голос
/ 24 сентября 2019

Фильтрация предназначена для поиска ваших элементов, а не воздействия на них.После того, как вы .filter(), вы должны поместить свою логику в .each()

$('#UnfinishedTable tr')
  .not('#headerRow')
  .each(function () {
    ... // logic
    $(this).show();
  });

В приведенном выше примере используется .not(), поскольку это ближе к желаемой логике.

1 голос
/ 24 сентября 2019
$('#unfinishedTable tr').not('#headerRow').each(function(){
    var val = $(this).attr('value');
    var src = datesToSearchFor.find(function(n){return n == val;});   
    $(this).css({'display' : src == null ? 'none' : ''});
});
0 голосов
/ 24 сентября 2019

Приведенный выше код выглядит правильно, консоль возвращает ошибки?DateToSearch для строкового вектора?Является ли headerRow идентификатором, который вы присвоили заголовку tr, чтобы игнорировать его?

...