javascript - 如何找到用户在打字时正在搜索的值?

标签 javascript jquery

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

注意: 如果可能的话,我想保留数组的结构。

最佳答案

$('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);
});

关于javascript - 如何找到用户在打字时正在搜索的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6424017/

相关文章:

javascript - 正则表达式 数字表达式

javascript - 使用 Jquery 进行表单验证的行为不符合预期

jQuery 自动完成行在选择时突出显示

JavaScript 匿名函数语法

javascript - 如何将项目添加到 promise 之外的数组中

javascript - X 到 Canvas 上绘制的形状边缘的距离

javascript - Promise catch,如何返回一个新的替代promise继续?

jquery - 如何通过 Id 从 <ul> 中删除 <li>?

javascript - 获取 iframe 的当前位置/url 并分配给变量

jquery - 带有 ScrollOverflow 选项的 FullPage,当出现上面的表单部分时,需要从底部开始滚动