最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js實(shí)現(xiàn)帶搜索功能的下拉框?qū)崟r(shí)搜索實(shí)時(shí)匹配

 更新時(shí)間:2013年11月05日 17:43:06   作者:  
當(dāng)select輸入框中每輸入一點(diǎn)內(nèi)容的時(shí)候,在option中找出與內(nèi)容匹配的選項(xiàng)顯示在option的前面選項(xiàng)中,下面有個(gè)不錯(cuò)的示例,希望朋友們可以喜歡
1. 當(dāng)select輸入框中每輸入一點(diǎn)內(nèi)容的時(shí)候,在option中找出與內(nèi)容匹配的選項(xiàng)顯示在option的前面選項(xiàng)中。
2. 如何獲取每次輸入的內(nèi)容,當(dāng)keyup的時(shí)候觸發(fā)函數(shù)。
問(wèn)題:select標(biāo)簽中可以輸入內(nèi)容嗎?(解決:另一篇文章可選擇和輸入的下拉列表框 )
3. 如何獲得輸入框中的內(nèi)容?(解決,在輸入框上添加onkeyup時(shí)間觸發(fā)的函數(shù)用js獲得)
4. 如何匹配?(解決)
4.1 如何獲得所有option中的內(nèi)容?(解決)
復(fù)制代碼 代碼如下:

function getSelectText()
{
//獲得所有select標(biāo)簽
var object = document.getElementsByTagName('select');
//因?yàn)樵揾tml中只有一個(gè)select標(biāo)簽,所以就是name = "aabb"代表的標(biāo)簽
var obj = object[0];
//alert(obj.length);
//alert(obj[0]);
//保存所有option 的值
var allText;
for(i=0;i<obj.length;i++)
{
allText += obj[i].innerText+','; //關(guān)鍵是通過(guò)option對(duì)象的innerText屬性獲取到選項(xiàng)文本
}
return allText;
}

4.2 js分割字符串?(解決)
復(fù)制代碼 代碼如下:

var allText = getSelectText();
//alert(allText);
// 每個(gè)option的內(nèi)容分割開(kāi)來(lái)
var eachOptin = new Array();
eachOptin=allText.split(","); //字符分割

4.3 如何在js中匹配?
復(fù)制代碼 代碼如下:

//如果option內(nèi)容中有輸入的內(nèi)容就返回第一次匹配的位置(大于等于0),如果沒(méi)有匹配的就返回-1
var flag = eachOptin[i].indexOf(shuru) ;

5. 如何讓匹配的內(nèi)容顯示在option的前面的選項(xiàng)?(通過(guò)改變option的index編號(hào))( 解決)
方法:當(dāng)查到匹配的選項(xiàng)的時(shí)候,將第一個(gè)option重新新增到select最后,然后,將第一個(gè)的值重置為匹配的option的值,然后刪掉原始匹配的option
7. js 實(shí)現(xiàn)select標(biāo)簽右邊三角的功能(未解決,當(dāng)搜索之后,直接顯示所有option選項(xiàng)可供選擇)
8.在匹配的option選項(xiàng)有多個(gè)的時(shí)候出現(xiàn)bedug,注意測(cè)試,和重新修改一下,應(yīng)該是上面第五條中的邏輯問(wèn)題
代碼如下:
復(fù)制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>測(cè)試</title>
<script>
function onku()
{
//獲得input輸入框的內(nèi)容
var shuru = document.getElementById('ccdd').value;
var object = document.getElementsByTagName('select');
var obj = object[0];
//如果輸入的內(nèi)容為空,所有的選項(xiàng)都匹配
if(shuru!= '')
{
//alert(shuru);
//獲得option中的所有內(nèi)容
var allText = getSelectText();
//alert(allText);
// 每個(gè)option的內(nèi)容分割開(kāi)來(lái)
var eachOptin = new Array();
eachOptin=allText.split(","); //字符分割
var f = 1;
for (i=1;i<eachOptin.length-1 ;i++ )
{
//alert(eachOptin[i]);
//如果option內(nèi)容中有輸入的內(nèi)容就返回第一次匹配的位置(大于等于0),如果沒(méi)有匹配的就返回-1
var flag = eachOptin[i].indexOf(shuru) ;
if(flag >=0)
{
//alert(i);
//將index為f的option重新新增一遍,顯示在最后
obj.options.add(new Option(obj[i].innerText,obj[f].value));
//將編號(hào)為f的option重新賦值,賦值為符合條件的第一個(gè)option
obj.options[f]=new Option(eachOptin[i],eachOptin[i]);
//刪除最初存在的符合條件的option
obj.remove(i);
f++;
}
}
}
}
function getSelectText()
{
//獲得所有select標(biāo)簽
var object = document.getElementsByTagName('select');
//因?yàn)樵揾tml中只有一個(gè)select標(biāo)簽,所以就是name = "aabb"代表的標(biāo)簽
var obj = object[0];
//alert(obj.length);
//alert(obj[0]);
//保存所有option 的值
var allText;
for(i=0;i<obj.length;i++)
{
//alert(obj[i].index);//獲得option的index編號(hào)
//alert(obj[i].value);//獲得option的value的值
allText+= obj[i].innerText+','; //關(guān)鍵是通過(guò)option對(duì)象的innerText屬性獲取到選項(xiàng)文本
}
return allText;
}
</script>
</head>

<body>
<span style=" position:absolute;border:1pt solid #c1c1c1; overflow:hidden;width:188px;height:19px;clip:rect(-1px 190px 190px 170px);">
<select name="aabb" id="aabb" style="width:190px;height:20px;margin:-2px;"
onChange="javascript:document.getElementById('ccdd').value=document.getElementById('aabb').options[document.getElementById('aabb').selectedIndex].value;">
<option value="" style="color:#c2c2c2;">--請(qǐng)選擇--</option>
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="廣州">廣州</option>
<option value="上123">上123</option>
<option value="蘇州">蘇州</option>
</select>
</span>
<span style="position:absolute; border:1pt solid #c1c1c1;border-left:1pt solid #c1c1c1;border-bottom:1pt solid #c1c1c1;width:170px;height:19px;">
<input type="text" name="ccdd" id="ccdd" value="可選擇也可輸入的下拉框" style="width:170px;height:15px;border:0pt;" onkeyup="onku()">
</span>
</body>
</html>

注意代碼中的注釋
上面代碼的運(yùn)行結(jié)果如下:

相關(guān)文章

  • JS target與currentTarget區(qū)別說(shuō)明

    JS target與currentTarget區(qū)別說(shuō)明

    target在事件流的目標(biāo)階段;currentTarget在事件流的捕獲,目標(biāo)及冒泡階段。只有當(dāng)事件流處在目標(biāo)階段的時(shí)候,兩個(gè)的指向才是一樣的,而當(dāng)處于捕獲和冒泡階段的時(shí)候,target指向被單擊的對(duì)象而currentTarget指向當(dāng)前事件活動(dòng)的對(duì)象(一般為父級(jí))。
    2011-08-08
  • JavaScript中常用的字符串方法函數(shù)操作方法總結(jié)

    JavaScript中常用的字符串方法函數(shù)操作方法總結(jié)

    這篇文章主要介紹了JavaScript中所有的字符串函數(shù)操作方法整理匯總,包括字符串的長(zhǎng)度、連接、查找、截取、替換、分隔、轉(zhuǎn)換等處理方法,以及網(wǎng)址中獲取文件名等等,需要的朋友可以參考下
    2023-12-12
  • 原生JS實(shí)現(xiàn)列表內(nèi)容自動(dòng)向上滾動(dòng)效果

    原生JS實(shí)現(xiàn)列表內(nèi)容自動(dòng)向上滾動(dòng)效果

    這篇文章主要介紹了原生JS實(shí)現(xiàn)列表內(nèi)容自動(dòng)向上滾動(dòng)效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • javascript實(shí)現(xiàn)支付寶滑塊驗(yàn)證碼效果

    javascript實(shí)現(xiàn)支付寶滑塊驗(yàn)證碼效果

    這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)支付寶滑塊驗(yàn)證碼效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 原生js的RSA和AES加密解密算法

    原生js的RSA和AES加密解密算法

    這篇文章主要為大家詳細(xì)介紹了原生js的RSA和AES加密解密算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Knockoutjs 學(xué)習(xí)系列(一)ko初體驗(yàn)

    Knockoutjs 學(xué)習(xí)系列(一)ko初體驗(yàn)

    本篇主要簡(jiǎn)單介紹了knockoutjs中最重要的概念:可觀(guān)察對(duì)象(數(shù)組)。非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友快來(lái)圍觀(guān)吧
    2016-06-06
  • js中的面向?qū)ο笾畬?duì)象常見(jiàn)創(chuàng)建方法詳解

    js中的面向?qū)ο笾畬?duì)象常見(jiàn)創(chuàng)建方法詳解

    這篇文章主要介紹了js中的面向?qū)ο笾畬?duì)象常見(jiàn)創(chuàng)建方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了JavaScript創(chuàng)建對(duì)象的四種常用方式,需要的朋友可以參考下
    2019-12-12
  • JS事件監(jiān)聽(tīng)與事件委托舉例詳解(前端小白必學(xué))

    JS事件監(jiān)聽(tīng)與事件委托舉例詳解(前端小白必學(xué))

    在JavaScript的學(xué)習(xí)中我們經(jīng)常會(huì)遇到JavaScript的事件機(jī)制,例如,事件綁定、事件監(jiān)聽(tīng)、事件委托(事件代理)等,下面這篇文章主要給大家介紹了關(guān)于JS事件監(jiān)聽(tīng)與事件委托的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • JS如何判斷json是否為空

    JS如何判斷json是否為空

    本文重點(diǎn)給大家介紹js判斷json對(duì)象是否為空的知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-07-07
  • javascript+HTML5的canvas實(shí)現(xiàn)七夕情人節(jié)3D玫瑰花效果代碼

    javascript+HTML5的canvas實(shí)現(xiàn)七夕情人節(jié)3D玫瑰花效果代碼

    這篇文章主要介紹了javascript+HTML5的canvas實(shí)現(xiàn)七夕情人節(jié)3D玫瑰花效果代碼,使用了html5的canvas技術(shù),可呈現(xiàn)出帶有3D效果的玫瑰花漸顯效果,非常逼真自然,需要的朋友可以參考下
    2015-08-08

最新評(píng)論

双鸭山市| 茌平县| 宕昌县| 叶城县| 内乡县| 福贡县| 客服| 东光县| 保康县| 丰宁| 马公市| 安泽县| 杭锦旗| 莫力| 四川省| 新密市| 牙克石市| 安新县| 旅游| 水富县| 辉南县| 于田县| 屯昌县| 庆元县| 新蔡县| 肇东市| 西吉县| 南阳市| 双柏县| 仪征市| 竹山县| 金川县| 综艺| 三门县| 英吉沙县| 安仁县| 石屏县| 香港| 宿迁市| 兰考县| 巨野县|