Как заставить фильтр искать информацию только в одном столбце с помощью jQuery?

0

Я использую следующий код для фильтрации данных в моей таблице:

function searchFilter(ftr,table){
    ftr = '#'+ftr;
    table = '#'+table;
    var $rows = $(table+' tbody tr');
    $(ftr).change(function() {
        var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase();

        $rows.show().filter(function() {
        var text = $(this).text().replace(/\s+/g, ' ').toLowerCase();
        return !~text.indexOf(val);
        }).hide();
    });

}

Но если в других столбцах будет повторяться информация, они также покажут их. Как я могу указать, в каком столбце я хочу, чтобы фильтр работал? Пусть, скажем, id этого столбца - betaDate. Что мне здесь не хватает?

Теги:
filter

1 ответ

2
Лучший ответ

Ну, вы получите индекс столбца

var searchIndex = $("#betaDate").index();

и в строке фильтра вы можете использовать индекс

$(this).find("td").eq(searchIndex).text()...

И еще один способ сделать это [логика может быть выключена, но основная идея]

var index = 1; //starts at one not zero!
var text = "1";
$("table tbody tr td:nth-child(" + index + ")")
    .filter( function() {
        return $(this).text()!==text; 
     })
     .parent()
         .addClass("hide");

играть на скрипке

  • 0
    первое решение сработало отлично, что теперь, если я хочу, чтобы оно выглядело в двух разных столбцах? betaDate и originalDate ?
  • 0
    Сделать две проверки ...
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню