Phi*_*ord 17 javascript jquery
如何在函数中设置全局变量?
$(document).ready(function() {
var option = '';
$("[name=select_option_selected]").change(function() {
var option = $(this).val();
alert(option); // Example: Foo
});
alert(option); // Need it to alert Foo from the above change function
});
Run Code Online (Sandbox Code Playgroud)
hun*_*ter 25
在jQuery onready范围之外声明它
var option = '';
$(document).ready(function() {
$("[name=select_option_selected]").change(function() {
option = $(this).val();
alert(option); // Example: Foo
});
alert(option); //This will never be "Foo" since option isn't set until that select list changes
});
Run Code Online (Sandbox Code Playgroud)
如果要将其初始化为当前选定的值,请尝试以下操作:
var option = "";
var $select_option_selected = null;
$(function() {
$select_option_selected = $("[name='select_option_selected']")
$select_option_selected.change(function() {
option = $(this).val();
});
option = $select_option_selected.val();
});
Run Code Online (Sandbox Code Playgroud)
坏道路
正如其他答案所指出的那样,创建全局变量并不是一个好主意.正如他们所指出的,您可以通过以下方式创建全局变量:
var
关键字的情况下初始化变量window.options = 'blah';
使用jQuery的Data()
方法
但是有一种更好的方法可以使用jQuery(和其他库)创建一个全局可访问的值.在jQuery中,使用该data()
方法存储与DOM元素关联的值:
// store 'blah' at document root
$(document).data('mysite.option', 'blah');
// retrieve value
alert($(document).data('mysite.option'));
Run Code Online (Sandbox Code Playgroud)
注意"mysite"
......最好为数据库命名空间,原因与在javascript中命名全局变量一样好.