2010-11-08 71 views
0
function getSelectData(id) { 
var value=''; 

    // set value to be the current selected value 
value = jQuery(id+" option:selected").val(); 

// change value whenever the box changes 
jQuery(id).change(function() { 
    value = jQuery(id+" option:selected").val(); 
}); 

console.log(value); 
return value; 

}得到全局变量,从功能`change`

感谢@Hogan,他帮助我,但我仍不能得到想要的结果,我怎么能得到可变value,外功能change,这里是这个例子http://jsfiddle.net/ZvuMh/,每当我改变选择框时,值是a。感谢您的支出时间

+0

可能重复http://stackoverflow.com/questions/4100524/jquery-从功能访问变量) – Hogan 2010-11-08 20:07:41

回答

1

除非您将其移动为全局变量,否则您无法进行此操作。实际上,“console.log(value)”这一行只会在函数change()被调用之前打印该值。 (change()在某些东西改变时被调用,但在getSelectData()返回后很久)。

+0

只是为了澄清,因为你有它“价值”不是全球性的。如果它在“function getSelectData(id){”之上声明,那么它就是,并且你可以从任何地方访问它。可能是糟糕的设计,但这是使其可以从其他地方访问的最直接方式。但是,您的“console.log(value)”行只会在执行change()之前显示它的值。 – rob 2010-11-08 19:46:35