Javascript仅在页面重新加载后才有效

时间:2013-10-19 17:46:51

标签: javascript

有一个id为#surch的搜索字段和一个包含很多tr的表,在keyup上我想要隐藏所有不包含在#surch中输入的字符串的表tr。我将<script src...>嵌入到我网站的所有文件中,并且在index.php上工作正常;在所有其他子页面上,它仅在页面重新加载后工作。

任何人都能给我一些帮助,这让我发疯了。我试图添加一个PHP函数,每次都增加javascript源代码(...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();
});

1 个答案:

答案 0 :(得分:0)

在这个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'表',你的$ rows选择器需要它。否则你只需选择$('table tr')。

(编辑:同样,是的,我假设您的JS在文档加载时运行。)