0

我正在寻找类似于 cpanel 搜索的功能。当您在搜索框中输入内容时,相似的内容会保留下来,而其余内容则会消失。例子

<div>hello</div>
<div>world</div>
<div>good</div>
<div>bad</div>
<input type="text" name="search">

现在,当我开始输入“他”时。只有你好显示和其余的 div 去 display:none;

可能吗?看过Cpanel搜索框的人都知道我在问什么。我一直在寻找这个,但找不到任何类似的东西。提前致谢。

4

2 回答 2

2

当然很简单,只需使用并相应地keyup event切换<div>

jsFiddle

HTML

<div id="example">
  <div>hello</div>
  <div>world</div>
  <div>good</div>
  <div>bad</div>
</div>
<input type="text" name="search" id="search">

JS

$(function(){
    $('#search').keyup(function(event){
        var keyCode = event.which; // check which key was pressed
        var term = $(this).val();
        $('#example').children().hide(); // hide all
        $('#example').children(':Contains("' + term + '")').show(); // toggle based on term
    });
 });​

 $.expr[':'].Contains = function(a, i, m) { 
    return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0; 
 };
于 2012-06-13T20:21:02.467 回答
1

是的,这是可能的。

这是我的小提琴:http: //jsfiddle.net/HQFQ5/2/

这是使其工作的功能:

$('input').bind('keyup',function(){
  var selfVal = $(this).val()
  var compareDivs = $('div');
  compareDivs.each(function(){
     var divVal = $(this).text().toString();
     if (divVal.indexOf(selfVal)<0)
         $(this).fadeOut();
     else
         $(this).fadeIn();
  });
});​
于 2012-06-13T20:21:51.060 回答