>  기사  >  웹 프론트엔드  >  js는 검색 기능_javascript 기술을 사용하여 실시간 검색 및 드롭다운 상자의 실시간 매칭을 구현합니다.

js는 검색 기능_javascript 기술을 사용하여 실시간 검색 및 드롭다운 상자의 실시간 매칭을 구현합니다.

WBOY
WBOY원래의
2016-05-16 17:17:211846검색

1. 선택 입력 상자에 내용의 각 비트를 입력하면 해당 내용과 일치하는 옵션이 해당 옵션에서 찾아 해당 옵션의 이전 옵션에 표시됩니다.
2. 각 입력의 내용을 가져오고 키업이 수행될 때 기능을 트리거하는 방법입니다.
질문: 선택 태그에 내용을 입력할 수 있나요? (해결책: 선택 가능하고 입력 가능한 드롭다운 목록 상자가 있는 또 다른 기사)
3. 입력 상자에 콘텐츠를 가져오는 방법은 무엇입니까? (해결하려면 입력 상자에 onkeyup 시간 트리거 함수를 추가하고 js를 사용하여 가져옵니다.)
4. 일치하는 방법은 무엇입니까? (해결책)
4.1 모든 옵션의 내용을 얻는 방법은 무엇입니까? (해결책)

코드 복사 코드는 다음과 같습니다.

function getSelectText()
{
//모든 선택 태그 가져오기
var object = document.getElementsByTagName('select');
//html에는 선택 태그가 하나만 있으므로 이름으로 표시되는 태그입니다. "aabb"
var obj = object[0];
//alert(obj.length)
//alert(obj[0])//값을 저장합니다. 모든 옵션
var allText;
for(i=0;i{
allText = obj[i].innerText ','; 옵션 개체의 innerText 속성을 통해 옵션 텍스트를 가져옵니다.
}
return allText
}

4.2 js 분할 문자열? (해결책)

코드 복사 코드는 다음과 같습니다.
var allText = getSelectText() ;
//alert(allText);
// 각 옵션의 내용 분할
var EachOptin = new Array()
eachOptin=allText.split(","); 분할

4.3 js에서 일치하는 방법은 무엇입니까?

코드 복사 코드는 다음과 같습니다.
//입력 내용이 있는 경우 옵션 내용, 첫 번째 일치 항목의 위치(0보다 크거나 같음)를 반환하고, 일치 항목이 없으면 -1을 반환합니다.
var flag = EachOptin[i].indexOf(shuru)

5. 매칭방법 옵션 앞에 내용이 표시되나요? (옵션의 인덱스 번호를 변경하여) (해결책)
방법: 일치하는 옵션이 발견되면 첫 번째 옵션을 다시 선택 항목 끝에 추가한 다음 첫 번째 값을 일치하는 옵션 값으로 재설정합니다. , 원래 매칭 옵션 삭제
7.js는 선택 태그 오른쪽에 삼각형 기능을 구현합니다(미해결, 검색 후 모든 옵션이 직접 선택 항목으로 표시됨)
8. option 여러 가지 옵션이 있을 때 빈대가 나타납니다. 주의해서 다시 수정해 보세요.
코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.




test
<script> <br>함수 onku() <br>{ <br>/ / 입력 상자의 내용 가져오기 <br>var shuru = document.getElementById('ccdd').value; <br>var object = document.getElementsByTagName('select') <br>var obj = object[0]; <br>//입력 내용이 비어 있으면 모든 옵션이 <br>if(shuru!= '') <br>{ <br>//alert(shuru) <br>//옵션 가져오기 <br>와 일치합니다. var allText = getSelectText(); <br>//alert(allText); <br>//각 옵션의 내용이 나누어집니다. <br>var EachOptin = new Array() <br> EachOptin=allText.split(" ,"); //문자 분할<br>var f = 1; <br>for (i=1;i<eachoptin.length-1>{ <br>/ /alert(eachOptin[i] ); <br>//옵션 내용에 입력 내용이 있는 경우 일치하는 첫 번째 위치(0보다 크거나 같음)를 반환하고, 일치하는 내용이 없으면 -1을 반환합니다. <br>var flag = EachOptin[i] .indexOf(shuru) ; <br>if(flag >=0) <br>{ <br>//alert(i) <br>//다시 인덱스 f를 사용하여 옵션을 추가하고 <br>obj.options.add(new Option(obj[i].innerText,obj[f].value)); <br>//조건을 충족하도록 번호가 붙은 옵션 f를 다시 할당합니다. 첫 번째 옵션 <br>obj.options[ f]=new Option(eachOptin[i],eachOptin[i]); <br>//처음에 존재하는 적합한 옵션 삭제 <br>obj.remove(i ) <br>f <br>} <br> } <br>} <br>} <br>function getSelectText() <br>{ <br>//모든 선택 태그 가져오기 <br>var object = document .getElementsByTagName('select') <br>//Because HTML에는 선택 태그가 하나만 있으며, 이는 name = "aabb" <br>var obj = object[0] <br>//alert( obj.length)//alert로 표시됩니다. (obj[0]); <br>//모든 옵션의 값을 저장합니다<br>var allText <br>for(i=0;i<obj.length;i ) <BR>{ <BR> //alert(obj[i].index);//옵션의 인덱스 번호를 가져옵니다<BR>//alert(obj[i].value);//옵션 값의 값을 가져옵니다<BR>allText = obj[ i].innerText ','; //옵션 객체의 innerText 속성을 통해 옵션 텍스트를 얻는 것이 핵심입니다<BR>} <BR>return allText <BR>} <BR></script> >






< ;/span>




코드의 주석에 주의하세요
위 코드의 결과는 다음과 같습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.