当搜索成功后搜索文本框为空时,不会提取所有数据列表
does not pull all list of data while search text box is empty after search sucess
我必须使用javascript执行客户端搜索,我可以这样做,但我无法在搜索文本后获得所有数据列表
这是我的html页面:
<form>
<label for="search">Search: </label>
<input type="text" name="search" id="search"/>
</form>
<div id="new-list">
<p><b>My List of Data</b></p>
<ul id="list">
<li class="test">First</li>
<li class="test">Second</li>
<li class="test">fifteen</li>
<li class="test">World</li>
</ul>
</div>
我试过了,但没有得到目前的解决方案。这是我的javascript代码
var searcher = {
ul : document.getElementById( 'list' ),
li : document.getElementById( 'list' ).children,
backup : [],
searchList : [],
showList : function ( eventObj ){
var userInput = eventObj.target.value;
console.log( userInput );console.log( this.backup );
var search = this.getRequired( userInput, this.backup );
var listToDisplay = this.textListToHtmlArray( search );
},
fillBackup: function(){
var length = this.li.length;
for( var i = 0; i < length; i++ ){
this.backup[i] = this.li[i].innerHTML;
}
},
getRequired: function( needle, haystack ){
var reg = new RegExp( '''n' + needle, 'i' );
var i = 0, j = 0, length = haystack.length;
this.searchList = [];
// filter required array
if( needle.length !== 0 ){
for( i = 0; i < length; i++ ){
if ( reg.test(haystack[i]) ) {
this.searchList.push( haystack[i] );
}
}
return this.searchList;
}
else {
return haystack;
}
},
textListToHtmlArray: function( list ){
//clear the current list
while( this.ul.firstChild ){
this.ul.removeChild( this.ul.firstChild );
}
console.log( this.ul );
var htmlList, listText;
for( var i = 0; i < list.length; i++ ){
var htmlList = document.createElement( 'li' );
htmlList.setAttribute( 'class', 'test' );
listText = document.createTextNode( list[i]);
htmlList.appendChild( listText );
this.ul.appendChild( htmlList );
}
return htmlList;
},
init : function (){
var search = document.getElementById( 'search' );
this.fillBackup();
search.onkeyup = this.showList.bind( this );
}
};
searcher.init();
请帮我找到解决方案。我对你们都很高兴:我试了很多次,但都没有得到需要的答案。
您的问题是正则表达式中没有在
( var reg = new RegExp( '''n' + needle, 'i' ); .Instead of this you have to use var reg = new RegExp( '''b' + needle, 'i' );
中编写正则表达式
var searcher = {
ul : document.getElementById( 'list' ),
li : document.getElementById( 'list' ).children,
backup : [],
searchList : [],
showList : function ( eventObj ){
var userInput = eventObj.target.value;
console.log( userInput );console.log( this.backup );
var search = this.getRequired( userInput, this.backup );
var listToDisplay = this.textListToHtmlArray( search );
console.log( listToDisplay );
},
fillBackup: function(){
var length = this.li.length;
for( var i = 0; i < length; i++ ){
this.backup[i] = this.li[i].innerHTML;
}
},
getRequired: function( needle, haystack ){
var reg = new RegExp( '''b' + needle, 'i' );
var i = 0, j = 0, length = haystack.length;
this.searchList = [];
// filter required array
if( needle.length !== 0 ){
for( i = 0; i < length; i++ ){
if ( reg.test(haystack[i]) ) {
this.searchList.push( haystack[i] );
}
}
return this.searchList;
}
else {
return haystack;
}
},
textListToHtmlArray: function( list ){
//clear the current list
while( this.ul.firstChild ){
this.ul.removeChild( this.ul.firstChild );
}
console.log( this.ul );
var htmlList, listText;
for( var i = 0; i < list.length; i++ ){
var htmlList = document.createElement( 'li' );
htmlList.setAttribute( 'class', 'test' );
listText = document.createTextNode( list[i]);
htmlList.appendChild( listText );
this.ul.appendChild( htmlList );
}
return htmlList;
},
init : function (){
var search = document.getElementById( 'search' );
this.fillBackup();
console.log( this.ul );
console.log( this.li );
console.log( this.backup );
search.onkeyup = this.showList.bind( this );
}
};
console.log( searcher.li );
searcher.init();
相关文章:
- 用程序搜索JQuery数据表中的文本
- 在html Select中添加搜索
- Ajax Live搜索发布到Laravel视图
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- 学生搜索项目jquery/javascript
- 用于搜索的聚合物嵌套绑定
- 在javascript中搜索具有重复值的两个数组中的匹配值
- 在数据提取完成之前进行页面渲染
- 给定带有位置“loc”的链接,搜索使用谷歌地图API从标记中提取纬度和经度
- 从 jQuery 中的 URL 中提取搜索查询
- 在提取的文本 JavaScript 中搜索关键字
- 检测谷歌即时搜索并从URL中提取搜索关键字
- 当搜索成功后搜索文本框为空时,不会提取所有数据列表
- 从谷歌搜索中提取数据
- JavaScript:遍历多维数组并提取多个搜索值
- 如何扫描文本文件并根据Javascript中的搜索标准从中提取数据
- 使用javascript从谷歌搜索中提取任何链接
- 提取选择列表的值并使用它来搜索ID值会导致所有剩余的JavaScript失效
- Google Apps脚本,用于从电子邮件正文中搜索和提取电子邮件地址并保存到spreadshet
- 解释如何使用Jquery从twitter搜索API提取数据并在HTML上打印