2014-02-28 46 views
0

我已經寫了一個用於在表內搜索數據的jquery,代碼正在工作,但表已被更改。如何保持在以往任何時候搜索關鍵字匹配表使用jquery進行項目搜索時突破

誰能告訴我,這

一些這方面的解決方案的整個行是我的jQuery代碼

$('#resultSearch').bind('keyup', function() { 
      var s = new RegExp(this.value); 
      $('#ricGridTable td').each(function() { 
       if(s.test(this.innerHTML)) $(this).show(); 
       else $(this).hide(); 
      }); 
     }); 
+0

您只在一行中隱藏/顯示td,嘗試隱藏/顯示最接近的tr(**。closest('tr')**)。 –

回答

2

.hide()正在破壞該表,因爲它將td設置爲display:none;

改爲使用visibility:hidden css屬性,並再次用visibility:visible顯示。

這是使用.css()方法$(this).css('visibility', 'hidden');

$('#resultSearch').bind('keyup', function() { 
    var s = new RegExp(this.value); 
    $('#ricGridTable td').each(function() { 
    if(s.test(this.innerHTML)) $(this).css('visibility', 'visible'); // Show 
    else $(this).css('visibility', 'hidden'); // Hide 
    }); 
}); 

然而@HB Kautil指出,你應該隱藏的行tr而不是細胞(td)jQuery中完成的。在這種情況下,.hide()將完成這項工作。

$(this).parents('tr').hide(); 
2

試試這個,

$('#resultSearch').bind('keyup', function() { 
      var s = new RegExp(this.value); 
      $('#ricGridTable td').each(function() { 
       if(s.test(this.innerHTML)) $(this).parents('tr').show(); 
       else $(this).parents('tr').hide(); 
      }); 
     });