1

如何在多个表中搜索?我有这段代码,但这仅适用于我的一张桌子。我一共有4张桌子。

这是我在表格中搜索“某物”的代码。

$(document).ready(function() {
    $('#search').keyup(function() {
        searchTable($(this).val());
    });
});

function searchTable(inputVal) {
    var table = $('#searchTable');
    table.find('tr').each(function(index, row) {
        var allCells = $(row).find('td');
        if(allCells.length > 0) {
            var found = false;
            allCells.each(function(index, td) {
                var regExp = new RegExp(inputVal, 'i');
                if(regExp.test($(td).text())) {
                    found = true;
                    return false;
                }
            });
            if(found == true) $(row).show();
            else $(row).hide();
        }
    });
}

我已经剥离了我的表格以获取代码,以便它看起来更易于管理

问题在于“search tabe”只运行表 1 而不是剩余的

表格1:

<table class="table" id="searchTable">

表 2:

<table class="table" id="searchTable">

表3:

<table class="table" id="searchTable">

表 4:

<table class="table" id="searchTable">
4

1 回答 1

6

你的问题是因为ID。每个元素的 ID 必须是唯一的,因此一旦 jQuery 提取了第一个 ID,它就会停止寻找其他任何 ID。

替换$('#searchTable')$('.table'),问题应该得到解决。

您还应该为这些表提供唯一的 ID,或者如果不使用这些 ID,则将其完全删除。

From the HTML specification: "There must not be multiple elements in a document that have the same id value." http://www.w3.org/TR/html-markup/global-attributes.html

于 2013-02-13T11:19:40.737 回答