Javascript JQuery在出现';其中有一个if子句
我正在开发我的自定义自动完成插件,该插件将用户输入与json文件中的数据进行比较Javascript JQuery在出现';其中有一个if子句,javascript,jquery,if-statement,each,Javascript,Jquery,If Statement,Each,我正在开发我的自定义自动完成插件,该插件将用户输入与json文件中的数据进行比较 <script> $(document).ready(function() { $("#user_input").keyup(function() { var input = $("#user_input").val(); var templ = new RegExp('^' + input, 'i'); $.getJSON("json/test.js
<script>
$(document).ready(function() {
$("#user_input").keyup(function() {
var input = $("#user_input").val();
var templ = new RegExp('^' + input, 'i');
$.getJSON("json/test.json", function(data) {
$.each(data, function() {
console.log(this['name']);
})
})
})
})
</script>
$(文档).ready(函数(){
$(“#用户输入”).keyup(函数(){
var输入=$(“#用户_输入”).val();
var temp=newregexp('^'+输入'i');
$.getJSON(“json/test.json”,函数(数据){
$.each(数据,函数(){
log(这个['name']);
})
})
})
})
当代码以这种形式表示时,我得到控制台中显示的所有值。这很好。但是,当我想在我的$中提供一个条件时,每个语句如下
<script>
$(document).ready(function() {
$("#user_input").keyup(function() {
var input = $("#user_input").val();
var templ = new RegExp('^' + input, 'i');
$.getJSON("json/test.json", function(data) {
$.each(data, function() {
if (templ.test(this['name'])) {
console.log(this['name']);
}
})
})
})
})
</script>
$(文档).ready(函数(){
$(“#用户输入”).keyup(函数(){
var输入=$(“#用户_输入”).val();
var temp=newregexp('^'+输入'i');
$.getJSON(“json/test.json”,函数(数据){
$.each(数据,函数(){
if(模板测试(此['name'])){
log(这个['name']);
}
})
})
})
})
我在控制台中得到两个匹配元素,就像$一样。每个执行两次。如何摆脱这种行为?如果条件为真,是否要中断循环?否,我要console.log所有与regexpPut匹配的元素将控制台放在getJson行上方,并检查是否调用了两次keyup?不是。。。在我的第一个没有if子句$的脚本中,每个都执行一次。这个问题是由于一个if子句引起的,但我不知道它实际上是什么,“数据”是如何构造的?只是一个常见的类似json的key:value?