2012-08-13 117 views
0

我想檢查文件名變量是否爲空。我使用jquery if statement issue

$.each(rows, function(rowIndex, row){ 





     var fileName = $.trim(fields[0]).toLowerCase(); 

       //will output fileName 
     console.log(fileName);    

     //out -1,5,3,15,15,5,5,6,7,-1,3,5,5 
       console.log(fileName.indexOf('.html'));  

     if(fileName.indexOf('.html') < 0 || window.location.href.toLowerCase().indexOf(fileName) < 0) //invalid or different file, skip this row 
     { 
      //if the filename is empty skip this loop and check next loop filename variable 

      return true; 
     } 

     //the above script is to check to see if the filename is empty.   

       var $element = $('#' + fileName); 

       //doesn't show anything at all. 
       console.log(fileName);  

}) 

我的'if'語句之前的所有內容都會顯示,但不會顯示在它之後。

感謝您的幫助。

+0

而不是'return true;',只是使用'return;'。 – ahren 2012-08-13 21:45:17

+2

放置一個'console.log()'_inside_ if語句 - 如果if條件爲true,則該函數根據代碼中的註釋停止該點。在這種情況下'$ .each()'的目的是什麼?回調中的任何地方都沒有使用'rowIndex'或'row'。 '行'中有什麼? 'fields'定義在哪裏? – nnnnnn 2012-08-13 21:49:40

回答

0

你的if語句在其中有「返回true」。這將返回/完成您的主要功能。

變化:

之前如果加:

var is_valid = false; 

,並且在有:

is_valid = true; 

這樣,它不會過早退出。 'var'在這裏是使這個變量局部於你的函數範圍內,並且不會泄漏內存。

+3

_我們可以通過使回調函數返回false來打破特定迭代中的$ .each()循環。返回非錯誤與for循環中的continue語句相同;它會立即跳到下一個迭代。[$ .each](http://api.jquery.com/jQuery.each/) – Andreas 2012-08-13 21:47:52