【问题标题】:Return a one message into loop jquery将一条消息返回到循环 jquery
【发布时间】:2013-11-10 15:00:33
【问题描述】:

好吧,我创建了一个简单的搜索器,但是当单词不存在时我需要返回一条消息,但是第一个单词可以正常工作,但是当我写最后一个单词时,循环立即中断,如何浏览所有单词并发送一个不中断循环的警报?

提前致谢

    <html>
<head>
    <title>buscador</title>
        <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
</head>

<script type="text/javascript">
$(function(){

/*iniciando el buscador*/
$("#buscar").click(function(){
    var dato =$("#palabra").val().toLowerCase();
    var myArray = [ "hello", "world","apple","bread","milk","pencil"];

        for ( var i = 0; i < myArray.length; i = i + 1 ){
            var flag = false;
                if(dato==myArray[i])
                {
                    alert("exist");
                    return false;
                }

                else if(dato!=myArray[i]){
                 flag=true;
                }
                if(flag) {alert("no exist"); return false;}

            }/*end foreach*/


});
});

</script>

<body>

<form method="post" action="" id="form-search">
<input type="text" id="palabra" name="palabra" placeholder="buscar"/>
<button id="buscar" name="buscar">Buscar</button>

</form>
</body>
</html> 

【问题讨论】:

    标签: jquery html for-loop conditional


    【解决方案1】:

    尝试使用 $.inArray(value, array)

    如果值不在数组中,则返回-1

    【讨论】:

      【解决方案2】:

      最简单的,我建议:

      $('#buscar').click(function(e){
          e.preventDefault();
          var needle = $('#palabra').val().toLowerCase(),
              haystack = ['hello','world','apple','milk','bread','pencil'],
              found = haystack.indexOf(needle) == -1 ? 'Not found' : 'Found';
          console.log(found);
      });
      

      JS Fiddle demo.

      或者,如果您的浏览器不支持Array.indexOf(),您可以使用上述for 循环:

      $('#buscar').click(function(e){
          e.preventDefault();
          var needle = $('#palabra').val().toLowerCase(),
              haystack = ['hello','world','apple','milk','bread','pencil'],
              found = false;
          for (var i = 0, len = haystack.length; i < len; i++){
              if (haystack[i] === needle){
                  found = true;
              }
          }
          console.log(found ? 'Found' : 'Not found');
      });
      

      JS Fiddle demo.

      【讨论】:

      • 工作正常,正是我需要的,非常感谢,但是如何开发它可以完成还是如果它真的在浪费时间?
      猜你喜欢
      • 2014-08-17
      • 2016-09-24
      • 2021-08-29
      • 2016-04-19
      • 2015-07-06
      • 1970-01-01
      • 2019-04-14
      • 2011-07-14
      • 1970-01-01
      相关资源
      最近更新 更多