我不确定这是否是基于数组值定义变量的正确方法。
getParameterByName()函数返回url参数
var t = getTab();
var paramArray = {
'year' : 'y',
'condition' : 'c',
'sort' : 's'
};
/*below vars are defined by $.each
var y = getParameterByName('y');
var c = getParameterByName('c');
var s = getParameterByName('s');
*/
$.each(paramArray, function(key, value) {
//define y,c,s variables
var value = getParameterByName(value);
console.log(value);//logs blank (nothing)
if(value != "")
{
$("#sort-filter-number").append('<button id="'+value+'" class="refresh refresh-'+key+' btn btn-info btn-sm">'+value+' <i class="fa fa-times"></i></button>');
}
});
toSort(y,c,s); //line 55 error : Uncaught ReferenceError: l is not defined
答案 0 :(得分:0)
您可以在window
对象上定义变量以使其成为global
,并且可以从任何地方访问。
Demo:
var paramArray = {
'year': 'y',
'condition': 'c',
'sort': 's'
};
$.each(paramArray, function(key, value) {
//define y,c,s variables
window[value] = key + ' => ' + value;
// ^^^^^^^^^^
document.write(value + '<br />'); //logs blank (nothing)
if (value != "") {
$("#sort-filter-number").append('<button id="' + value + '" class="refresh refresh-' + key + ' btn btn-info btn-sm">' + value + ' <i class="fa fa-times"></i></button>');
}
});
document.write(y + '<br />' + c + '<br />' + s); // No error here
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>