如果不制作数据库后端,是否可以以某种方式在 html / css 页面上创建一个搜索框,可能所有内容都使用 jquery,也就是说我在页面上有四个 div 框,每个 div 框都包含某些风味文本或关键字. 是否可以制作一个搜索框,当搜索关键字时,它会隐藏不包含该关键字的其他 div 框,然后仅显示那些包含该关键字的 div 框。
我知道并知道 jquery 中的 .hide / .show /.toggle,但是如何开始编写一个简单的搜索框来执行这种功能呢?有人有任何想法或大致方向吗?
$("#search").on("keyup", function() {
    var key = this.value;
    $(".tosearch").each(function() {
       var $this = $(this);
       $this.toggle($(this).text().indexOf(key) >= 0);
    });
});
演示:http: //jsfiddle.net/upsgk/
请注意,这将执行区分大小写的搜索。要忽略大小写,您需要调用几次toLowerCase()。例如http://jsfiddle.net/upsgk/1/
以下是您需要的关键组件的列表:
inputtxt.value(jQuery: $("input").val()): 返回文本中写入的值input。elm.innerHTML(jQuery: $("elm").html()):返回一个包含元素内容的字符串。str.indexOf(pattern)pattern: 返回in的第一次出现的索引str。如果pattern中不存在str,则.indexOf()返回 -1。把它们放在一起,你会得到这样的东西:little link。该代码非常不言自明,但这里是 JavaScript 部分的注释版本:
$("#search").on("keydown keyup keypress change", function() { //when the textbox is changed
    var query = $("#search").val(); //save its content
    $(".box").each(function() { //for each box
        var cur = $(this); //get the current box
        if(cur.html().indexOf(query) == -1) { //see if the current box contains the query
            cur.hide("fast"); //it doesn't; hide it
        }
        else {
            cur.show("fast"); //it does, show it
        }
    });
});
我不想为你做这个项目,但这是一个开始的想法
var query= $('#search').val();
var str = $('#div1').val();
if (str.indexOf(query) >= 0){
   // display box
}
else{
  // hide box
}
是的,有可能。
先听搜索框防止默认使用
$('input[type="submit"]').click(function(e){e.preventDefault();});
编写代码以获取搜索框值。
隐藏所有 div$("div").css("display","none");
$("#"+valueOfBox").css("display","true");