2011-03-19 83 views
2

我對JQuery相當陌生。我寫了下面的函數,我可以在控制檯中查看創建的數組,所以我知道該函數可以正常工作。我的問題是如何使用函數之外的數組?我試過插入返回arr;在函數的結尾,但我似乎無法訪問數組值!從JQuery函數中獲取數組

function css_ts() { 
    arr = []; 
    $('.timeslot').each(function(){ 
     var bid = $(this).children("input[type='hidden']").val(); 
     if (bid > 0) { 
      $(this).css('background-color','blue'); 
      arr.push(bid); 
     } 
     else 
     { 
      $(this).css('background-color','#ececec'); 
     } 
    }); 
    console.log($.unique(arr)); 
} 
+0

你是如何使用返回的值?你能在這裏發佈這段代碼嗎? – Dogbert 2011-03-19 23:30:19

+0

該代碼是預訂系統的一部分,返回的值是預訂id。這一天被細分爲15分鐘的細分市場,上面的代碼找到了所有的細分市場。目前,每個15分鐘的細分是帶有邊框的div元素,儘管一個或多個div可以具有相同的值,如果說預訂持續一個小時。如果是這種情況,我希望四個div元素看起來加入(即更改CSS,以便在div之間刪除邊框)。因此,我將遍歷返回的數組,以查找超過15分鐘並相應地調整CSS的預訂 – Dan 2011-03-19 23:37:09

回答

1
  1. arrcss_ts隱含全球性的,因爲你已經省略了var關鍵字。

    var arr = []; 
    
  2. 以下行添加到您的函數的末尾:

    return arr; 
    

    然後使用它是這樣的:

    var arr = css_ts(); 
    
  3. 聲明/初始化變量時,你應該總是使用 var
0

你是否在函數內部或函數外部聲明瞭arr []?如果你在函數內部創建了它,那麼由於變量的作用域,沒有其他函數可以看到這個變量。將聲明移到函數之外並試一試。我希望這有幫助。

1

arr = [];之前添加一個var,這使它成爲本地函數,並且您將能夠在最後返回它。

+1

要清楚,即使它是全局的,也可以將其返回,但它只會返回對全局變量的引用,如下面應該演示:'var val =(function(){return test =「3」})(); val === window.test // true' – 2011-03-19 23:42:45