-2

如何使用数组 javascript 按姓名和姓氏进行搜索?每次我搜索以 je 开头的内容时,div=result 都会显示所有带有 Je 的姓名和姓氏,在这种情况下是 Jessica 和 Jey;
这将是一个 onkeydown 事件,对吧?

<input type='text' id='filter' placeholder='search in array'>

在这里我打印结果:

<div id='result'></div>

这是我的数组:

var datos = [ ['Jessica','Lyn',3],
         ['Jhon','Cin',5],
         ['Alison','Peage',1],
         ['Thor','zhov',12],
         ['Jey','hov',32]  
        ];
4

3 回答 3

2
$("#filter").on('keyup', function () {
   var val = $(this).val();
   $("#result").empty();
   $.each(datos, function () {
      if (this[0].indexOf(val) >= 0 || this[1].indexOf(val) >= 0) {
         $("#result").append("<div>" + this[0] + ' ' + this[1] + "</div>");
      }
   });
});

http://jsfiddle.net/MqTBm/

于 2013-01-29T00:25:53.840 回答
1
var $result = $('#result');

$('#filter').on('keyup', function () {
    var $fragment = $('<div />');
    var val = this.value.toLowerCase();
    $.each(datos, function (i, item) {console.log( item[0].toLowerCase().indexOf(val) );
        if ( item[0].toLowerCase().indexOf(val) == 0 ) {
            $fragment.append('<p>' + item[0] + ' ' + item[1] + '</p>');
        }
    });
    $result.html( $fragment.children() );
});

这是小提琴:http: //jsfiddle.net/GkWGk/

于 2013-01-29T00:27:35.477 回答
1

简单的答案是在数组上运行一个 for 循环来检查每个元素。但是,如果您有一个大数组,这不是一个好主意。有很多方法可以索引一个数组。想到我可能会构建第二个数组,它将作为一个字符串连接的字段存储为索引,然后是数组引用。因此,您可以 for 循环遍历引用对象。查找具有字符串比较的条目。获取对真实数组的索引引用。

于 2013-01-29T01:07:58.147 回答