jsonp實現(xiàn)百度下拉框功能的方法分析
本文實例講述了jsonp實現(xiàn)百度下拉框功能的方法。分享給大家供大家參考,具體如下:
思路就是獲取用戶輸入,然后根據(jù)用戶輸入調用百度的一個接口jsonp實現(xiàn)跨域請求,然后將百度返回給的內容渲染數(shù)據(jù)到視圖。需要注意的就是,發(fā)送請求的時候記得編碼用戶輸入的內容
var obj=document.querySelector('#user-input');
var body=document.querySelectorAll('body')[0];
var ul=document.querySelector('#ul');
var inner='';
function render(data){
//刪除前一次請求的li的內容
if(ul.innerHTML!=''){
ul.innerHTML='';
}
for(let i = 0, length1 = data.s.length; i < length1; i++){
var li=document.createElement('li');
li.innerHTML=data.s[i];
ul.appendChild(li);
}
}
obj.addEventListener('keyup',function(){
if(document.querySelector('#request')){
body.removeChild(document.querySelector('#request'));
}
var script=document.createElement('script');
script.id="request";
script.src="http://unionsug.baidu.com/su?wd="+encodeURI(obj.value.trim())+'&p=3&cb=render';
body.appendChild(script);
});
//利用冒泡添加事件。
ul.addEventListener('click',function(e){
var e=e||window.event;
window.location. rel="external nofollow" +encodeURI(e.target.innerHTML);
});
<style type="text/css">
*{
margin: 0;
padding: 0;
}
ul{
margin-left: 10px;
transition: all 1s ease;
}
input{
width: 300px;
height: 40px;
line-height: 40px;
background: #4caf50a6;
outline: none;
border: none;
border-radius: 10px;
padding-left: 15px;
color: white;
font-size: 20px;
}
li{
cursor: pointer;
transition: all 1s ease;
list-style: none;
width: 280px;
height: 30px;
line-height: 30px;
background: #8acb8da8;
color: #888e4a;
padding-left: 10px;
}
li:hover{
background: #64a968;
color: #caf1cc;
}
input::-webkit-input-placeholder{
color:white;
}
input::-moz-placeholder{ /* Mozilla Firefox 19+ */
color:white;
}
input:-moz-placeholder{ /* Mozilla Firefox 4 to 18 */
color:white;
}
input:-ms-input-placeholder{ /* Internet Explorer 10-11 */
color:white;
}
</style>
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript操作DOM技巧總結》、《JavaScript頁面元素操作技巧總結》、《JavaScript事件相關操作與技巧大全》、《JavaScript查找算法技巧總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript錯誤與調試技巧總結》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章
js使用for循環(huán)及if語句判斷多個一樣的name
這篇文章主要介紹了js使用for循環(huán)機if語句判斷多個一樣的name,此法比較實用,需要的朋友可以參考下2014-09-09
js中Object.defineProperty()方法的不詳解
這篇文章主要介紹了js中Object.defineProperty()方法的不詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07
JavaScript中的ParseInt("08")和“09”返回0的原因分析及解決辦法
這篇文章主要介紹了JavaScript中ParseInt("08")和“09”返回0的原因分析及解決辦法的相關資料,需要的朋友可以參考下2016-05-05

