有一个 id 为 #surch 的搜索字段和一个包含大量 tr´s 的表,并且关于 keyup
我想隐藏所有不包含 #surch 中输入的字符串的表 tr´s。我将其嵌入 <script src...>
到我网站的所有文件,它在我的 index.php
上运行良好;在所有其他子页面上,它仅在页面重新加载后才起作用。
谁能给我一些帮助,这让我发疯。我尝试添加一个每次都会增加 javascript 源代码的 php 函数( ...sufu.js?updated=266
),但它并没有解决我的问题。
编辑:我的页面上也运行了 google adsense,这里也有同样的问题。 adsense 在重新加载后才运行。有什么想法吗?
var $rows = $('#table tr');
$('#surch').keyup(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();
});
最佳答案
这对我来说在 JSFiddle 中工作得很好。 Try it out.
<input type=text id='surch'>
<table id='table'>
<tr><td>x</td></tr>
<tr><td>y</td></tr>
<tr><td>z</td></tr>
<tr><td>p</td></tr>
</table>
当然,我假设您的表有一个 id 'table',这是您的 $rows 选择器所需要的。否则,您只需选择 $('table tr')。
(编辑:另外,是的,我假设你的 JS 在文档加载时运行。)
关于JavaScript 仅在页面重新加载后才起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19469095/