2014-02-05 55 views
0

一個相當微不足道的問題,我該如何返回或傳遞函數外的值?下面如何從javascript函數返回/傳遞值?

代碼:

function numberOfDivs(){ 
var numberOfElements = $("#div").children().length; //this count how many divs exist 
return numberOfElements; 
} 

$("#element").click(function(){ 
    numberOfDivs(); 
    console.log(numberOfElements);// here I need to return the number but getting error :(
}); 

千恩萬謝

+1

這是一個異步函數的回調。你不能直接返回任何東西。 –

+0

@medzi,這是非常基本的東西,也許你應該選擇一個教程,並更習慣於語言。 –

+1

@Danilo,你在哪裏看到異步調用?這是存儲由'numberOfDivs()'返回的值的簡單方法。 –

回答

2
$("#element").click(function(){ 
    var numberOfElements= numberOfDivs(); 
    console.log(numberOfElements); 
}); 
1
var numberOfElements;  
function numberOfDivs(){ 
    numberOfElements = $("#div").children().length; //this count how many divs exist 
      } 

    $("#element").click(function(){ 
      console.log(numberOfElements);// here I need to return the number but getting error :(
    }); 
2

嘗試

var numberOfElements= numberOfDivs(); 
console.log(numberOfElements); 

當函數返回一個值,而我們調用的函數,我們分配一個變量來捕獲結果

1

一種方法是:在全球範圍內定義numberOfElements這樣的:

var numberOfElements; 
function numberOfDivs(){ 
numberOfElements = $("#div").children().length; //this count how many divs exist 
return numberOfElements; 
} 

$("#element").click(function(){ 
    numberOfDivs(); 
    console.log(numberOfElements);// here I need to return the number but getting error :(
}); 

或者另一種方式是:結果在一個變量分配和使用

$("#element").click(function(){ 
     var output = numberOfDivs(); 
     console.log(output);// here I need to return the number but getting error :(
    }); 
1

使用回調函數嘗試,考慮一個場景,其中你的numberofDivs函數需要時間來返回值,它不會給出適當的結果,因爲jquery是異步的。看到這個演示使用回調來返回數據CALLBACK DEMO

function AppendJson(callback) { 
    var numberOfElements = "AppendJson"; 
    callback(numberOfElements) 
} 


AppendJson(function (ReturnValue) { 
    alert(ReturnValue); 
}); 
相關問題