文字が入力されるたびに検索できるようにする
・main.js
var fruits = ['apple', 'apricot', 'avocado', 'blueberry', 'cherry', 'coconut', 'cranberry', 'dragonfruit', 'durian', 'grape', 'grapefruit', 'guava', 'kiwi fruit', 'lemon', 'lime', 'lychee', 'mango', 'melon', 'watermelon', 'miracle fruit', 'orange', 'bloodorange','clementine','mandarine','tangerine','papaya','passionfruit','peach','pear','persimmon','physalis','plum/prune','pineapple','pomegranate','raspberry','rambutan','star fruit','strawberry'];
$(function() {
var list = $("#list");
var preWord;
function appendList(word) {
var item = $('<li class="list">').append(word);
list.append(item);
}
function editElement(element) {
var result = "^" + element;
return result;
}
$("#keyword").on("keyup", function() {
var input = $("#keyword").val();
var inputs = input.split(" ").filter(function(e) { return e; });
var newInputs = inputs.map(editElement);
var word = newInputs.join("|");
var reg = RegExp(word);
$(".list").remove();
if (word != preWord && input.length !== 0) {
$.each(fruits, function(i, fruit) {
if (fruit.match(reg)) {
appendList(fruit);
}
});
if ($(".list").length === 0) {
appendList("一致する果物はありませんでした");
}
}
});
});
・index.html
<html>
<head>
<meta charset="utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script src="main.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="form-group">
<input type='text' id="keyword" class="form-control" placeholder="好きなフルーツを入力してください">
<button type="button" id="submit" class="btn">検索</button>
</div>
<ul id="list"></ul>
</body>
</html>