Javascript 搜索机制在Html表中不起作用

Javascript 搜索机制在Html表中不起作用,javascript,jquery,html,Javascript,Jquery,Html,我正在研究html中的搜索机制,当我第一次搜索数据时它就开始工作了。如果我搜索下一个数据,它不会按预期搜索。如果我用空数据搜索,它将不会显示实际的表(在初始时间显示) JsFiddle: 我的代码: <!DOCTYPE> <html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"&

我正在研究html中的搜索机制,当我第一次搜索数据时它就开始工作了。如果我搜索下一个数据,它不会按预期搜索。如果我用空数据搜索,它将不会显示实际的表(在初始时间显示)

JsFiddle:

我的代码:

<!DOCTYPE>
<html>
<head>
   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>

    <style> td{border: thin solid;} </style>

    <script type="text/javascript">

    function searchTable(inputVal) { 
        var inputVal = document.getElementById('searchdata').value;
            $('.table').html($('.table').html().replace(RegExp(inputVal, 'g'), '<span class="showthis">' + inputVal + '<span>'));
            $("tr").css('display', 'none');
            $(".showthis").parent().parent().css('display', '');
        }

    function addList(){

        var table = "";
        table += "<table class='table'>";
        table += "<tr>";
        table += "<td>S.no</td>";
        table += "<td>Name</td>";
        table += "<td>Gender</td>";

        table += "</tr>";
        for(i=0; i<10; i++) {
            table += "<tr>";
            table += "<td>"+i+"</td>";
            table += "<td>Name"+i+"</td>";
            table += "<td>"+( i > 5 ? "Male" : "Female")+"</td>";
            table += "</tr>";
        }
        table += "</table>";
        var body = document.getElementById("ListContainer");
        body.innerHTML = table;
    }
    </script>

</head>
<body onload="addList();">
    <input id="Button1" type="button" value="button" onclick="searchTable();" />
        <input id="searchdata" type="text" />
        <div id="ListContainer" > </div>
</body>
</html>

td{边框:薄实体;}
函数搜索表(inputVal){
var inputVal=document.getElementById('searchdata')。值;
$('.table').html($('.table').html().replace(RegExp(inputVal,'g'),''+inputVal+'');
$(“tr”).css('display','none');
$(“.showthis”).parent().parent().css('display','');
}
函数addList(){
var表=”;
表+=”;
表+=”;
表+=“序号”;
表+=“名称”;
表+=“性别”;
表+=”;
对于(i=0;i 5?“男性”:“女性”)+“”;
表+=”;
}
表+=”;
var body=document.getElementById(“ListContainer”);
body.innerHTML=表格;
}

提前感谢…

修改搜索功能如下:

function searchTable(inputVal) { 
    var inputVal = document.getElementById('searchdata').value;
   if(inputVal){ //check for valid searches
        //addList();
        $('.table').html($('.table').html().replace(RegExp(inputVal, 'g'), '<span class="showthis">' + inputVal + '<span>'));
        $("tr").css('display', 'none');
        $(".showthis").parent().parent().css('display', '');
  }
  else{
    addList(); // if you don't want to reinitialize table on empty searches skip this
  }
}
函数搜索表(inputVal){
var inputVal=document.getElementById('searchdata')。值;
if(inputVal){//检查有效的搜索
//addList();
$('.table').html($('.table').html().replace(RegExp(inputVal,'g'),''+inputVal+'');
$(“tr”).css('display','none');
$(“.showthis”).parent().parent().css('display','');
}
否则{
addList();//如果不想在空搜索上重新初始化表,请跳过此步骤
}
}

按如下方式修改搜索功能:

function searchTable(inputVal) { 
    var inputVal = document.getElementById('searchdata').value;
   if(inputVal){ //check for valid searches
        //addList();
        $('.table').html($('.table').html().replace(RegExp(inputVal, 'g'), '<span class="showthis">' + inputVal + '<span>'));
        $("tr").css('display', 'none');
        $(".showthis").parent().parent().css('display', '');
  }
  else{
    addList(); // if you don't want to reinitialize table on empty searches skip this
  }
}
函数搜索表(inputVal){
var inputVal=document.getElementById('searchdata')。值;
if(inputVal){//检查有效的搜索
//addList();
$('.table').html($('.table').html().replace(RegExp(inputVal,'g'),''+inputVal+'');
$(“tr”).css('display','none');
$(“.showthis”).parent().parent().css('display','');
}
否则{
addList();//如果不想在空搜索上重新初始化表,请跳过此步骤
}
}

按如下方式修改搜索功能:

function searchTable(inputVal) { 
    var inputVal = document.getElementById('searchdata').value;
   if(inputVal){ //check for valid searches
        //addList();
        $('.table').html($('.table').html().replace(RegExp(inputVal, 'g'), '<span class="showthis">' + inputVal + '<span>'));
        $("tr").css('display', 'none');
        $(".showthis").parent().parent().css('display', '');
  }
  else{
    addList(); // if you don't want to reinitialize table on empty searches skip this
  }
}
函数搜索表(inputVal){
var inputVal=document.getElementById('searchdata')。值;
if(inputVal){//检查有效的搜索
//addList();
$('.table').html($('.table').html().replace(RegExp(inputVal,'g'),''+inputVal+'');
$(“tr”).css('display','none');
$(“.showthis”).parent().parent().css('display','');
}
否则{
addList();//如果不想在空搜索上重新初始化表,请跳过此步骤
}
}

按如下方式修改搜索功能:

function searchTable(inputVal) { 
    var inputVal = document.getElementById('searchdata').value;
   if(inputVal){ //check for valid searches
        //addList();
        $('.table').html($('.table').html().replace(RegExp(inputVal, 'g'), '<span class="showthis">' + inputVal + '<span>'));
        $("tr").css('display', 'none');
        $(".showthis").parent().parent().css('display', '');
  }
  else{
    addList(); // if you don't want to reinitialize table on empty searches skip this
  }
}
函数搜索表(inputVal){
var inputVal=document.getElementById('searchdata')。值;
if(inputVal){//检查有效的搜索
//addList();
$('.table').html($('.table').html().replace(RegExp(inputVal,'g'),''+inputVal+'');
$(“tr”).css('display','none');
$(“.showthis”).parent().parent().css('display','');
}
否则{
addList();//如果不想在空搜索上重新初始化表,请跳过此步骤
}
}
可能是这样的

也许是这样

也许是这样

也许是这样



非常感谢你的帖子,谢谢你的作品。其他更好的方法(搜索机制)。即使我不喜欢我写的代码,它看起来也不好。@Hariharan更新了代码,现在它不仅可以用于第一次搜索。如果你能接受这个答案就好了。非常感谢老板。。。当我输入空数据而不调用addList()函数时,仍然需要恢复表。@Hariharan如果要恢复搜索,只需删除addList(),但是您打算如何允许用户返回初始阶段?目前一个空的搜索就可以了,或者是一个重置按钮?如果您不需要该功能,请删除对搜索功能中addList的两个调用。谢谢您的帮助。我感谢你的帮助。非常感谢你的帖子,谢谢你的作品。其他更好的方法(搜索机制)。即使我不喜欢我写的代码,它看起来也不好。@Hariharan更新了代码,现在它不仅可以用于第一次搜索。如果你能接受这个答案就好了。非常感谢老板。。。当我输入空数据而不调用addList()函数时,仍然需要恢复表。@Hariharan如果要恢复搜索,只需删除addList(),但是您打算如何允许用户返回初始阶段?目前一个空的搜索就可以了,或者是一个重置按钮?如果您不需要该功能,请删除对搜索功能中addList的两个调用。谢谢您的帮助。我感谢你的帮助。非常感谢你的帖子,谢谢你的作品。其他更好的方法(搜索机制)。即使我不喜欢我写的代码,它看起来也不好。@Hariharan更新了代码,现在它不仅可以用于第一次搜索。如果你能接受这个答案就好了。非常感谢老板。。。当我输入空数据而不调用addList()函数时,仍然需要恢复表。@Hariharan如果要恢复搜索,只需删除addList(),但是您打算如何允许用户返回初始阶段?目前一个空的搜索就可以了,或者是一个重置按钮?如果您不需要该功能,请删除对搜索功能中addList的两个调用。谢谢您的帮助。我感谢你的帮助。非常感谢你的帖子,谢谢你的作品。其他更好的方法(搜索机制)。即使我不喜欢我写的代码,它看起来也不好。@Hariharan更新了代码,现在它不仅可以用于第一次搜索。如果你能接受这个答案就好了。非常感谢老板。。。当我输入空数据而不调用addList()函数时,仍然需要重新获得表。@harich