2013-02-13 100 views
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(); 
     } 
    }); 
} 

我已经剥夺我的码表,使其看起来更容易管理了

问题就出在“搜索田部”只运行表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"> 
+0

该id应该是唯一的..看看这个例子http://jsfiddle.net/6hRNf/ – BeNdErR 2013-02-13 11:25:20

回答

6

您的问题是,因为ID的。 ID必须对每个元素都是唯一的,所以一旦jQuery取出第一个ID,它就会停止查找其他元素。

$('#searchTable')替换为$('.table')并且问题应该修复。

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

根据HTML规范:“文档中不得有多个元素具有相同的id值。” http://www.w3.org/TR/html-markup/global-attributes.html

+0

Arrrh谢谢@詹姆斯。我会在8分钟内接受你的回答:D – Zaz 2013-02-13 11:23:47