Какую комбинацию селектора jQuery я могу использовать, чтобы скрыть родителей TD, которые не содержат поиск? - PullRequest
0 голосов
/ 30 января 2012

У меня есть таблица, которая отображает все доступные классы.Идентификатор TR для каждого класса - это поставщик класса + уровень оценки (например, для 8-го класса Виртуальным классом будет «Виртуальный8»).Затем у меня есть поле со списком «Поставщик», поле со списком «Оценка» и текстовое поле «Название класса».Когда вы нажимаете «Показать», он должен скрывать все TR, показывать TR, которые отображают правильный «Provider» + «Grade» ID, а затем скрывать любого родителя TD (tr), который не содержит поиск класса.

В настоящее время поиск по названию класса вообще ничего не делает.

Я знаю, что это очень запутанно, и, вероятно, есть более простой способ сделать это.Любые предложения будут ценны.Если я оставлю поле «Заголовок класса» пустым и начну поиск только по поставщику и уровню обучения, форма будет работать нормально;однако добавление заголовка класса в поиске ничего не дает.

Код:

<script src="jquery.missing.js" type="text/javascript"></script>
<script type="text/javascript">

$(document).ready(function(){

    $("#display").click(function() { 

        $('tr[id^="Independent"]').hide();
        $('tr[id^="Virtual"]').hide();
        $('tr[id^="Innovative"]').hide();
        $('tr[id^="Lincoln"]').hide();
        $('tr[id^="Missouri"]').hide();
        $('tr[id^="Calvert"]').hide();

        var result = $('#theprovider').val() + $('#thegrade').val();
        $('tr[id*="' + result + '"]').show();

        var search = $('#searchclass').val();
        $('td:missing("' + search + '")').closest('tr').hide();
    });

});
</script>

Код Missing.js (предоставленный Дарси Кларк):

$.expr[':'].missing = function(elem, index, match) {
    return (elem.textContent || elem.innerText || Sizzle.getText([elem]) || "").indexOf(match[3]) == -1;
}

1 Ответ

1 голос
/ 30 января 2012

Вы должны избегать кавычек сомнений, только если они используются внутри двойных кавычек, то же самое относится и к одиночным кавычкам.

Вместо missing вы можете попробовать использовать комбинацию not и containsкак это.

$('tr:gt(0)').not(":contains('" + search + "')").hide();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...