我正在尝试显示与用户输入相匹配的文字。当用户输入第一个字符,例如'a'时,它会显示结果,但是当输入第二个字符时没有任何反应,例如'as'。因此,当用户输入时,我希望显示棒球和快速。
// JavaScript Document
s1= new String()
s2= new String()
var myArray = new Array();
myArray[0] = "Football";
myArray[1] = "Baseball";
myArray[2] = "Cricket";
myArray[3] = "Fast";
function test() // called onkeyup() event
{
s1 = document.getElementById('filter').value;
s2 = s2+s1;
arraysearch();
}
function arraysearch()
{
for(i=0; i<myArray.length; i++)
{
if (myArray[i].indexOf(s2) != -1) // also tried using match method
{
alert('Matched');
document.getElementById('placeholder').innerHTML += myArray[i] + "<br/>";
}
}
}
答案 0 :(得分:1)
<script type="text/javascript" language="javascript">
function ShowMe(obj) {
var lbl = document.getElementById('divContent');
var myArray = new Array();
myArray[0] = "Football";
myArray[1] = "Baseball";
myArray[2] = "Cricket";
myArray[3] = "Fast";
var s2 = obj.value.toLowerCase();
for (i = 0; i < myArray.length; i++) {
if (myArray[i].toLowerCase().indexOf(s2) != -1)
{
lbl.innerHTML = myArray[i];
}
}
}
</script>
HTML代码
<div>
<h1>JS Test</h1>
<input id="txtInput" onkeyup="javascript:ShowMe(this)" />
<div id="divContent">
</div>
</div>
答案 1 :(得分:1)
试过这个,我实施了一个解决方案来帮助你。您可以使用正则表达式来更好地比较和匹配字符串。它使用jquery只是为了dom操作,但那就是它。您可以继续编辑它。希望它有所帮助。
答案 2 :(得分:0)
如果“filter”是一个输入元素,并且您设置了“onKeyUp ='javascript:arraysearch()'”,则此代码应该适合您。
function arraysearch()
{
for(var i in myArray)
{
if (myArray[i].toLowerCase().indexOf(document.getElementById('filter').value) != -1)
{
alert('Matched');
document.getElementById('placeholder').innerHTML += myArray[i] + "<br/>";
}
}
}