Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在单词中间搜索数组字符串以查找搜索词_Javascript_Html_Css_Arrays_Autocomplete - Fatal编程技术网

Javascript 在单词中间搜索数组字符串以查找搜索词

Javascript 在单词中间搜索数组字符串以查找搜索词,javascript,html,css,arrays,autocomplete,Javascript,Html,Css,Arrays,Autocomplete,我有一个输入,目前自动完成,但只有当你在字的开头键入。我希望能够在中键入单词的任何部分,如果数组中的字符串在任何时候包含该部分,它都会显示出来。我想更改当前代码以执行此操作 这是我的代码: 功能自动完成(inp、arr){ /*autocomplete函数接受两个参数, 文本字段元素和可能的自动完成值数组:*/ 无功电流聚焦; /*当有人在文本字段中写入时执行函数:*/ inp.addEventListener(“输入”,函数(e){ var a,b,i,val=该值; /*关闭所有已打开的自

我有一个输入,目前自动完成,但只有当你在字的开头键入。我希望能够在中键入单词的任何部分,如果数组中的字符串在任何时候包含该部分,它都会显示出来。我想更改当前代码以执行此操作

这是我的代码:

功能自动完成(inp、arr){
/*autocomplete函数接受两个参数,
文本字段元素和可能的自动完成值数组:*/
无功电流聚焦;
/*当有人在文本字段中写入时执行函数:*/
inp.addEventListener(“输入”,函数(e){
var a,b,i,val=该值;
/*关闭所有已打开的自动完成值列表*/
closeAllList();
如果(!val){
返回false;
}
currentFocus=-1;
/*创建将包含以下项(值)的DIV元素:*/
a=document.createElement(“DIV”);
a、 setAttribute(“id”,this.id+“自动完成列表”);
a、 setAttribute(“类”、“自动完成项”);
/*将DIV元素作为自动完成容器的子元素追加:*/
this.parentNode.appendChild(a);
/*对于数组中的每个项*/
对于(i=0;i”+arr[i].substr(0,val.length)+“”;
b、 innerHTML+=arr[i].substr(val.length);
/*插入将保存当前数组项值的输入字段:*/
b、 innerHTML+=“”;
/*当有人单击项值(DIV元素)时执行函数:*/
b、 addEventListener(“单击”,函数(e){
/*插入自动完成文本字段的值:*/
inp.value=this.getElementsByTagName(“输入”)[0].value;
/*关闭自动完成值的列表,
(或任何其他打开的自动完成值列表:*/
closeAllList();
});
a、 儿童(b);
}
}
});
/*按键盘上的键执行功能:*/
inp.addEventListener(“向下键控”,函数(e){
var x=document.getElementById(this.id+“自动完成列表”);
如果(x)x=x.getElementsByTagName(“div”);
如果(e.keyCode==40){
/*如果按下向下箭头键,
增加currentFocus变量:*/
currentFocus++;
/*并使当前项目更加可见:*/
addActive(x);
}如果(e.keyCode==38){//up
/*如果按下向上箭头键,
减小currentFocus变量:*/
当前焦点--;
/*并使当前项目更加可见:*/
addActive(x);
}否则如果(e.keyCode==13){
/*如果按ENTER键,则阻止提交表单*/
e、 预防默认值();
如果(当前焦点>-1){
/*并模拟单击“活动”项:*/
如果(x)x[currentFocus]。单击();
}
}
});
函数addActive(x){
/*将项目分类为“活动”的函数:*/
如果(!x)返回false;
/*首先删除所有项目上的“活动”类:*/
清除活性(x);
如果(currentFocus>=x.length)currentFocus=0;
如果(currentFocus<0)currentFocus=(x.length-1);
/*添加类“自动完成活动”:*/
x[currentFocus].classList.add(“自动完成活动”);
}
函数removeActive(x){
/*从所有自动完成项中删除“活动”类的函数:*/
对于(变量i=0;i
更改

if (arr[i].substr(0, val.length).toUpperCase() == val.toUpperCase()) { 

b.innerHTML=“”+arr[i].substr(0,val.length)+“”;
b、 innerHTML+=arr[i].substr(val.length);

var pos=arr[i].toUpperCase().indexOf(val.toUpperCase()),
str1=arr[i]。子串(pos,pos+val.length);
b、 innerHTML=arr[i]。替换(str1,“”+str1+”);
功能自动完成(inp、arr){
/*autocomplete函数接受两个参数,
文本字段元素和可能的自动完成值数组:*/
无功电流聚焦;
/*当有人在文本字段中写入时执行函数:*/
inp.addEventListener(“输入”,函数(e){
var a,b,i,val=该值;
/*关闭所有已打开的自动完成值列表*/
closeAllList();
如果(!val){
返回false;
}
currentFocus=-1;
/*创建将包含以下项(值)的DIV元素:*/
a=document.createElement(“DIV”);
a、 setAttribute(“id”,t
if (arr[i].toUpperCase().indexOf(val.toUpperCase()) !=-1) {
b.innerHTML = "<strong>" + arr[i].substr(0, val.length) + "</strong>";
b.innerHTML += arr[i].substr(val.length);
var pos = arr[i].toUpperCase().indexOf(val.toUpperCase()),
    str1 = arr[i].substring(pos,pos+val.length);
b.innerHTML = arr[i].replace(str1,'<strong>'+str1+'</strong>');