jQuery:根据输入的第一个字母显示数组元素

时间:2017-09-14 10:52:30

标签: javascript jquery arrays forms

我对javascript很新,我有一个数组,每个字母都有一个元素:

var firstname = [ "Julie", "Jack", "John", ....]

我想根据表单输入字段中使用的第一个字母将特定元素填充到标记中。

例如,如果A是输入中使用的第一个字母,它将填充“Julie”,B将填充“Jack”,C将填充“John”等等......

有人可以建议我如何在jQuery中做到这一点?感谢。

3 个答案:

答案 0 :(得分:0)

这是你在找什么?



var firstname = [ "Julie", "Jack", "John"];

function getElementBasedOnFirstChar(input) {
    var charCode = input.charCodeAt(0);
    
    // Uppercase
    if (charCode >= 65 && charCode <= 90) {
        return firstname[charCode - 65];
    } 
    // Lowercase
    else if (charCode >= 97 && charCode <= 122) {
        return firstname[charCode - 97];
    }
    // Non alphabetic characters
    else {
        throw "Illegal start of string";
    }
}

console.log(getElementBasedOnFirstChar("Alfa"));
console.log(getElementBasedOnFirstChar("alfa"));
console.log(getElementBasedOnFirstChar("Bravo"));
console.log(getElementBasedOnFirstChar("Charlie"));
console.log(getElementBasedOnFirstChar("---"));
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我不确定你在找什么。但是此代码从输入字段获取值并检查数组以查找以输入开头的项目。我只是将它作为示例附加到div。

&#13;
&#13;
var firstname = [ "Julie", "Jack", "John", "Peter", "Frank"];

$('#ugh').on('keyup',function(){
//Check if key is a character (a-z | A-Z)
if (event.keyCode >= 65 && event.keyCode <= 90 || event.keyCode >= 97 && event.keyCode <= 122){
  $.each(firstname, function(key, val){ //foreach item in firstname array
   if(val.toLowerCase().match("^" + $('#ugh').val().toLowerCase())){ //text input matches item from array 
    $('#result').append('<p>'+val+'</p>'); //display result, change to whatever you want to do with it
   }
  });
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' id='ugh'/>

<div id="result"></div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

你期待这样的事吗

$(document).ready(function() {
  var arr = [];
  var firstname = [ "Julie", "Jack", "John"];
  var i = "a";
  $.each(firstname, function(key, value) {
  //  console.log(key, value);
  arr[i] = value;
  var ii =   String.fromCharCode(i.charCodeAt() + 1);
  console.log(ii);
  i = ii;
  console.log(arr);
  });
  alert(arr['a']);
 // console.log(firstname);
});

https://jsfiddle.net/o2gxgz9r/14064/