如何从javascript函数返回/传递值?

时间:2014-02-05 11:23:47

标签: javascript jquery

一个相当简单的问题,如何在函数外返回或传递值?

以下代码:

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 :(
});
非常感谢

5 个答案:

答案 0 :(得分:2)

$("#element").click(function(){
  var numberOfElements= numberOfDivs();   
  console.log(numberOfElements);
});

答案 1 :(得分:2)

尝试

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

由于函数是返回一个值,当我们调用函数时,我们分配了一个变量来捕获结果

答案 2 :(得分: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 :(
    });

答案 3 :(得分: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 :(
    });

答案 4 :(得分:1)

尝试使用回调函数,考虑一个场景,如果你的numberofDivs函数需要时间来返回值,它将不会给出适当的结果,因为Jquery是异步的。请参阅此演示,了解如何使用回调来返回数据CALLBACK DEMO

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


AppendJson(function (ReturnValue) {
   alert(ReturnValue);
});