2010-11-08 7 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

возможно дубликат [Jquery, доступ к переменным из функции] (http://stackoverflow.com/questions/4100524/jquery- access-variable-from-function) – Hogan

ответ

1

Вы не можете, если вы не переместите его как глобальную переменную. Как бы то ни было, строка «console.log (value)» будет печатать только значение перед вызовом функции(). (change() вызывается, когда что-то меняется ... но это уже давно после возврата getSelectData()).

+0

Просто, чтобы уточнить, так как у вас есть это значение, это не глобальное. Если это объявлено выше «function getSelectData (id) {», это было бы, и вы могли бы получить к нему доступ из любого места. Вероятно, плохой дизайн, но это самый прямой способ сделать его доступным из других мест. Однако ваша строка «console.log (value)» будет показывать только ее значение ПЕРЕД заменой(). – rob

Смежные вопросы