2013-10-30 46 views
0

嗯,我創建了一個簡單的搜索器,但我需要返回一個消息時,該單詞不存在,但第一個單詞工作正常,但是當我寫最後一個單詞循環中斷立即,如何瀏覽所有單詞併發送一個警報而不中斷循環?返回一個消息到循環jquery

在此先感謝

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

回答

0

簡單地說,我想建議:

$('#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

+0

工作正常,是我所需要的,非常感謝,但如何開發它可以做,或者如果它真的浪費時間? –

0

嘗試使用$ .inArray(值,數組)

返回-1如果值是不是他們在陣列