JavaScript的:
var array = [
['shoe', 1],
['shirts', 2]
];
$('input#item').keyup(function()
{
var value = $(this).val();
$('#value').html('value from array');
});
HTML:
<input type="text" name="item" id="item" />
<br />
Value: <span id="value"></span>
我想在用户正在键入时查找用户正在搜索的项目的值。
示例:
a)当用户键入s
时,它应输出1
,因为它是数组中的第一个值。
b)当用户输入shi
时,它应输出2
,因为它与shirts
匹配。
c)如果没有匹配,则应输出no match
。
注意: 如果可能的话,我想保留数组的结构。
答案 0 :(得分:3)
$('input#item').keypress(function()
{
var value = $(this).val();
var result = 'no match';
for (var i = 0; i < array.length; i++) {
if (array[i][0].indexOf(value) != -1) {
result = array[i][1];
break;
}
}
$('#value').html(result);
});
答案 1 :(得分:1)
为什么,只需循环遍历数组...
var array = [
['shoe', 1],
['shirts', 2]
];
function findValue(array, value) {
for (var i=0, ii=array.length; i<ii; i++)
if (array[i][0].substr(0, value.length) == value)
return array[i];
return false;
}
$('input#item').keyup(function()
{
var
value = $(this).val(),
match = findValue(array, value);
$('#value').html(match === false ? "no match" : match[1]);
});
没有测试它