求助:无法获取属性“match”的值: 对象为 null 或未定义
js实现本地搜索。随意搜索后报错。求助解决办法。<metacharset=utf-8/><inputid="key-word"class="key-word"value=...
js实现本地搜索。随意搜索后报错。求助解决办法。
<meta charset=utf-8 />
<input id="key-word" class="key-word" value="请输入搜索内容" />
<button id="search-button">搜索</button>
<ol>
<div id="content" >
</div></ol>
<script>
var ti
ti="我们是一个人123||||你们是几个人456||||他们说什么话789";
tiz=ti.split('||||');
function $(id){
return document.getElementById(id)
}
var putWordsObj = $('key-word');
putWordsObj.onfocus = function(){
if(this.value == '请输入搜索内容')this.value='';
}
putWordsObj.onblur = function(){
if(!this.value)this.value='请输入搜索内容';
}
//search
$('search-button').onclick = function(){
$('content').innerHTML = "";
for(var i=0;i<ti.length;i++){
var content = tiz[i]; //$('content'+i).innerHTML;
var keyWord = $('key-word').value;
content=search_do(content, keyWord);
}
}
function search_do(content,keyWord){
var rr;
var keyWordArr = keyWord.replace(/[\s]+/g,' ').split(' ');
var re;var r;var hh=1;
for(var n = 0; n < keyWordArr.length; n ++) {
//re = new RegExp(">[\s\S]*?"+keyWordArr[n]+"[\s\S]*?<\S","gmi");
re = new RegExp(""+keyWordArr[n]+"","gmi");
r=0;
r = content.match(re);
if(r == null){
rr = null;
}else{
content = content.replace(re,'<span style="color:red;">'+keyWordArr[n]+'</span>');
rr=0;
}
}
if(rr != null){
$('content').innerHTML += "<li>"+content+"</li>";
}
}
</script>
网页错误详细信息
用户代理: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
时间戳: Wed, 13 Nov 2013 12:08:47 UTC
消息: 无法获取属性“match”的值: 对象为 null 或未定义
行: 43
字符: 2
代码: 0
URI: file:///C:/Users/Administrator/Desktop/dd.html 展开
<meta charset=utf-8 />
<input id="key-word" class="key-word" value="请输入搜索内容" />
<button id="search-button">搜索</button>
<ol>
<div id="content" >
</div></ol>
<script>
var ti
ti="我们是一个人123||||你们是几个人456||||他们说什么话789";
tiz=ti.split('||||');
function $(id){
return document.getElementById(id)
}
var putWordsObj = $('key-word');
putWordsObj.onfocus = function(){
if(this.value == '请输入搜索内容')this.value='';
}
putWordsObj.onblur = function(){
if(!this.value)this.value='请输入搜索内容';
}
//search
$('search-button').onclick = function(){
$('content').innerHTML = "";
for(var i=0;i<ti.length;i++){
var content = tiz[i]; //$('content'+i).innerHTML;
var keyWord = $('key-word').value;
content=search_do(content, keyWord);
}
}
function search_do(content,keyWord){
var rr;
var keyWordArr = keyWord.replace(/[\s]+/g,' ').split(' ');
var re;var r;var hh=1;
for(var n = 0; n < keyWordArr.length; n ++) {
//re = new RegExp(">[\s\S]*?"+keyWordArr[n]+"[\s\S]*?<\S","gmi");
re = new RegExp(""+keyWordArr[n]+"","gmi");
r=0;
r = content.match(re);
if(r == null){
rr = null;
}else{
content = content.replace(re,'<span style="color:red;">'+keyWordArr[n]+'</span>');
rr=0;
}
}
if(rr != null){
$('content').innerHTML += "<li>"+content+"</li>";
}
}
</script>
网页错误详细信息
用户代理: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
时间戳: Wed, 13 Nov 2013 12:08:47 UTC
消息: 无法获取属性“match”的值: 对象为 null 或未定义
行: 43
字符: 2
代码: 0
URI: file:///C:/Users/Administrator/Desktop/dd.html 展开
3个回答
展开全部
for(var i=0;i<ti.length;i++){
var content = tiz[i]; //$('content'+i).innerHTML;
var keyWord = $('key-word').value;
content=search_do(content, keyWord);
}
这个循环的问题, i的取值范围是ti 字符串的长度,而并不是tiz 数组的长度。超出数组长度的content都为null, 调用search_do(content,keyWord)时出现的现象。改成
for(var i=0;i<tiz.length;i++) 就好了
var content = tiz[i]; //$('content'+i).innerHTML;
var keyWord = $('key-word').value;
content=search_do(content, keyWord);
}
这个循环的问题, i的取值范围是ti 字符串的长度,而并不是tiz 数组的长度。超出数组长度的content都为null, 调用search_do(content,keyWord)时出现的现象。改成
for(var i=0;i<tiz.length;i++) 就好了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-13
展开全部
var content = tiz[i];
不是tiz吧,是ti是吧
不是tiz吧,是ti是吧
追问
是tiz
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
re = new RegExp(""+keyWordArr[n]+"","gmi");
//keyWordArr[n] 有值吗?
//keyWordArr[n] 有值吗?
追问
有的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询