チュートリアルの次のコードを適応させて、内容に基づいてli要素をフィルタリングしました。
$('#_selectSearch_' + index).keyup(function() {
var filter = $(this).val();
if(filter) {
$('#_selectDrop_' + index).find("li:not(:contains(" + filter + "))").slideUp();
$('#_selectDrop_' + index).find("li:contains(" + filter + ")").slideDown();
} else {
$('#_selectDrop_' + index).find("li").slideDown();
}
});
コードは問題なく機能しますが、大きなリストを操作する場合は非常に遅く、キーを押すたびにブラウザが数秒間停止します。私は周りを見回して、これを改善する方法は、どういうわけかリストをキャッシュし、DOMを直接操作しないことですが、これを実装する方法がわからないという結論に達しました。