匿名函数的javascript变量作用域
我有一个javascript/jquery函数,其中我将div中的每个元素存储到一个数组中。问题是它不会将结果保存在匿名函数之外。如何设置全局变量 这是我的Javascript/jquery匿名函数的javascript变量作用域,javascript,jquery,Javascript,Jquery,我有一个javascript/jquery函数,其中我将div中的每个元素存储到一个数组中。问题是它不会将结果保存在匿名函数之外。如何设置全局变量 这是我的Javascript/jquery function store_options(){ var stored_options = new Array; $('[id^="tagboxfv-"]').each(function(){ var last_index = slice_last_index(this);
function store_options(){
var stored_options = new Array;
$('[id^="tagboxfv-"]').each(function(){
var last_index = slice_last_index(this);
$('[id="form-'+last_index+'"] > select[id="v-'+last_index+'"] > option').each(function(){
stored_options[last_index] = [];
stored_options[last_index][$(this).val()]=$(this);
});
});
}
通常不建议在JavaScript中使用全局变量。 Bu如果您仍然想使用它,只需在功能范围之外定义它:
var stored_options = new Array;
function store_options(){
$('[id^="tagboxfv-"]').each(function(){
var last_index = slice_last_index(this);
$('[id="form-'+last_index+'"] > select[id="v-'+last_index+'"] > option').each(function(){
stored_options[last_index] = [];
stored_options[last_index][$(this).val()]=$(this);
});
});
}
作为替代方案,您的函数可以有一个return语句,以便您可以在任何地方使用它(这样就不会引入全局变量):
可以在所有函数之外使用变量
<script>
var someVar;
function foo(){
}
</script>
第一个数组可能重复,但它只记录第二个数组的最后一个选项。我也尝试了第二个数组,它输出未定义的函数fv_tags(){var stored_options=store_options();console.log(stored_options);};对于第一个-我认为问题在于slice_last_index(this)函数中-我假设您的索引被重写。关于第二个-您需要确保在外部范围(而不是在$(document.ready)中定义store_options(),并检查定义您的fv_标记函数以及您的答案是正确的。我的问题是如何建立多维阵列。我很乐意提供帮助:-)
<script>
var someVar;
function foo(){
}
</script>
window.propName = "asd";