我有一个具有大量记录的网页(比如表中的250行数据),并希望能够访问页面,立即开始打字,并让它跳到与我拥有的文本相匹配的第一行类型.
理想情况下,如果我继续输入更多的角色,所以第一场比赛不再匹配,那么可以继续回应我的输入,并跳转到新的比赛.
我已经尝试过window.find(),但没有太多的成功…任何人都可以推荐一个工作的解决方案?
我基本上正在寻找相当于键盘上的“CTRL-F”,除了不需要按CTRL-F来实现.
解决方法
我认为这很棘手的一部分实际上是智能地接受用户输入.因此,我会说最好的办法是把你的搜索转移到一个自动完成类型的插件.一旦页面准备就绪,您将焦点传递到输入文本框,然后让插件在您搜索时执行其魔术…
例如,您可以使用quicksearch插件.
然后给出一个数据表和一个这样的输入:
<input id="searcher" type="text" name="searcher">
你可以有一个准备好的功能,如下所示:
$('#searcher').quicksearch('table tbody tr',{ 'delay': 100,'bind': 'keyup keydown','show': function() { if ($('#searcher').val() === '') { return; } $(this).addClass('show'); },'onAfter': function() { if ($('#searcher').val() === '') { return; } if ($('.show:first').length > 0){ $('html,body').scrollTop($('.show:first').offset().top); } },'hide': function() { $(this).removeClass('show'); },'prepareQuery': function(val) { return new RegExp(val,"i"); },'testQuery': function(query,txt,_row) { return query.test(txt); } }); $('#searcher').focus();