在jquery中传递变量

将var full传递给函数b的最佳方法是什么? 我不想使用全局变量。 返回是唯一的选择。

  .aaa, .bbb, .ccc { width:100px; height:100px;background-color:#ccc;margin-bottom:5px;}   

$("body").click(function(e){ var name = $(e.target)[0].nodeName; var nameid = $(e.target)[0].id; var classname = $(name+"#"+nameid).attr('class'); var full = name+"#"+nameid; console.log(nameid); function b(){ alert(full); }; });

您可以通过如下定义将变量传递给函数:

 function b(x) { alert(x); } 

然后通过声明其名称并将变量作为参数传递来调用它:

 b(full); 

所以在你的代码的上下文中:

 $("body").click(function(e){ var name = $(e.target)[0].nodeName; var nameid = $(e.target)[0].id; var classname = $(name+"#"+nameid).attr('class'); var full = name+"#"+nameid; console.log(nameid); function b(x){ alert(x); }; b(full); }); 

争论? 这里有什么东西我不见了?

 function b(x){ alert(x); }; 

打电话给

 b(full); 
  // define b function b(full) { alert(full); } 

实际上,您没有使用全局变量。 您在绑定到body元素的JQuery匿名函数中定义它们。

除非你不希望函数b存在,或者在click函数之外使用,否则我会将它移到匿名函数之外。 然后只需在定义中指定参数,然后像普通一样传递它们