Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery在出现';其中有一个if子句_Javascript_Jquery_If Statement_Each - Fatal编程技术网

Javascript JQuery在出现';其中有一个if子句

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

我正在开发我的自定义自动完成插件,该插件将用户输入与json文件中的数据进行比较

<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?