JS实现表格数据各种搜索功能的方法

JavaScript017

JS实现表格数据各种搜索功能的方法,第1张

本文实例讲述了JS实现表格数据各种搜索功能。可忽略大小写,模糊搜索,多关键搜索。分享给大家供大家参考。具体实现方法如下:

复制代码

代码如下:<!DOCTYPE

html>

<html>

<head>

<meta

charset="utf-8">

<title></title>

<script

type="text/javascript">

window.onload=function(){

var

oTab=document.getElementById("tab")

var

oBt=document.getElementsByTagName("input")

oBt[1].onclick=function(){

for(var

i=0i<oTab.tBodies[0].rows.lengthi++)

{

var

str1=oTab.tBodies[0].rows[i].cells[1].innerHTML.toUpperCase()

var

str2=oBt[0].value.toUpperCase()

//使用string.toUpperCase()(将字符串中的字符全部转换成大写)或string.toLowerCase()(将字符串中的字符全部转换成小写)

//所谓忽略大小写的搜索就是将用户输入的字符串全部转换大写或小写,然后把信息表中的字符串的全部转换成大写或小写,最后再去比较两者转换后的字符就行了

/*******************************JS实现表格忽略大小写搜索*********************************/

if(str1==str2){

oTab.tBodies[0].rows[i].style.background='red'

}

else{

oTab.tBodies[0].rows[i].style.background=''

}

/***********************************JS实现表格的模糊搜索*************************************/

//表格的模糊搜索的就是通过JS中的一个search()方法,使用格式,string1.search(string2)如果

//用户输入的字符串是其一个子串,就会返回该子串在主串的位置,不匹配则会返回-1,故操作如下

if(str1.search(str2)!=-1){oTab.tBodies[0].rows[i].style.background='red'}

else{oTab.tBodies[0].rows[i].style.background=''}

/***********************************JS实现表格的多关键字搜索********************************/

//表格的多关键字搜索,加入用户所输入的多个关键字之间用空格隔开,就用split方法把一个长字符串以空格为标准,分成一个字符串数组,

//然后以一个循环将切成的数组的子字符串与信息表中的字符串比较

var

arr=str2.split('

')

for(var

j=0j<arr.lengthj++)

{

if(str1.search(arr[j])!=-1){oTab.tBodies[0].rows[i].style.background='red'}

}

}

}

}

</script>

</head>

<body>

姓名:<input

type="text"

/>

<input

type="button"

value="搜索"/>

<table

border="1"

bordercolor="blue"

id="tab">

<thead>

<td><h2>ID</h2></td>

<td><h2>Name</h2></td>

<td><h2>Age</h2></td>

</thead>

<tbody>

<tr>

<td>1</td>

<td>Blue</td>

<td>15</td>

</tr>

<tr>

<td>2</td>

<td>Mikyou</td>

<td>26</td>

</tr>

<tr>

<td>3</td>

<td>weak</td>

<td>24</td>

</tr>

<tr>

<td>4</td>

<td>sky</td>

<td>35</td>

</tr>

<tr>

<td>5</td>

<td>李四</td>

<td>18</td>

</tr>

</tbody>

</table>

</body>

</html>

希望本文所述对大家的javascript程序设计有所帮助。

一:对文章关键字的搜索(数组的方法):

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title></title>

<style type="text/css">

#search{

height:40pxwidth: 200pxfont-size: 30pxtext-align: center

}

#div {

font-size: 20pxwidth: 600px

}

#div span{

color: red

}

</style>

</head>

<body >

<input type="text" name="search" id="search" value="馋" onclick="this.value='' "/>

<input type="button" name="" id="bbtn" value="搜索" />

<div id="div">

<p>馋,在英文里找不到一个十分适当的字。罗马暴君尼禄,以至于英国的亨利八世,在大宴群臣的时候,常见其撕下一根根又粗又壮的鸡腿,举起来大嚼,旁若无人,好一副饕餮相!但那不是馋。埃及废王法鲁克,据说每天早餐一口气吃二十个荷包蛋,也不是馋,只是放肆,只是没有吃相。对有某一种食物有所偏好,于是大量的吃,这是贪多无厌。馋,则着重在食物的质,最需要满足的是品味。上天生人,在他嘴里安放一条舌,舌上还有无数的味蕾,教人焉得不馋?馋,基于生理的要求;也可以发展成为近于艺术的趣味。 

也许我们中国人特别馋一些。馋字从食,有声。毚音谗,本义是狡兔,善于奔走,人为了口腹之欲,不惜多方奔走以膏馋吻,所谓“为了一张嘴,跑断两条腿”。</p>

</div>

<script type="text/javascript">

       var bbtn=document.getElementById('bbtn')

       var search=document.getElementById('search')

       var text=document.getElementsByTagName('p')[0]

       var text1=text.innerHTML

       var arr=[]

       var str=text1

       bbtn.onclick=function(){

        str=text1

        arr=search.value

      str=str.split(arr).join('<span>'+arr+'</span>')

        text.innerHTML=str

       }

       

</script>

</body>

</html>

二:对li表单的搜索:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<style type="text/css">

*{

padding: 0margin: 0

}

#content{

margin: 100px 300pxdisplay: block

}

input{

height: 50pxwidth: 400pxfont-size: 30pxline-height: 50px

}

ul{

      

}

li{

margin:10px 0pxdisplay: block

}

</style>

</head>

<body>

<div id="content">

<ul>

<input type="" name="" id="" value="" placeholder="请输入城市的名称或拼音"/>

<li pname="北京" cname="bj">北京</li>

<li pname="株洲" cname="zz">株洲</li>

<li pname="上海" cname="sh">上海</li>

<li pname="长沙" cname="cs">长沙</li>

<li pname="杭州" cname="hz">杭州</li>

<li pname="天津" cname="tj">天津</li>

<li pname="西安" cname="xa">西安</li>

<li pname="成都" cname="cd">成都</li>

<li pname="武汉" cname="wh">武汉</li>

<li pname="南京" cname="nj">南京</li>

</ul>

</div>

        <script type="text/javascript">

         var li=document.getElementsByTagName('li')

         var text=document.getElementsByTagName('input')[0]

         function search(){

         var arr=text.value

         for(var i=0i<li.lengthi++)

         {

         li[i].style.display="none"

         if(li[i].getAttribute('pname').indexOf(arr)!=-1||li[i].getAttribute('cname').indexOf(arr)!=-1)

         {

         li[i].style.display="block"

         }

         }

         }

        text.oninput=function(){

         search()

        }

  </script>

</body>

</html>

这里有一个简单的站内搜索功能

<SCRIPT language=javascript>

<!--

function go(formname)

{

var url = http://www.163ns.com

formname.method = "get"

if (formname.myselectvalue.value == "1") {

document.search_form1.word.value = document.search_form1.word.value " site:www.163ns.com"

}

formname.action = url

return true

}

//-->

</SCRIPT>

<form name="search_form1" target="_blank" onsubmit="return go(this)">

<input name=word size="30" value="请输入关键字" onMouseOver="this.focus()" onBlur="if (value ==''){value='请输入关键字'}" onFocus="this.select()" onClick="if(this.value=='请输入关键字')this.value=''">

<input type="submit" value="搜索"><br>

<INPUT name=myselectvalue type=hidden value=0>

<INPUT name=tn type=hidden value="sayyes">

<INPUT name=cl type=hidden value="3">

<INPUT CHECKED name=myselect onclick=javascript:this.form.myselectvalue.value=0 type=radio value=0>

<FONT color=#0000cc style="FONT-SIZE: 12px">互联网 

<INPUT name=myselect onclick=javascript:this.form.myselectvalue.value=1 type=radio value=1>

<FONT color=#ff0000 style="FONT-SIZE: 12px">站内 

</form>