jQuery - 根据数组值定义变量

时间:2015-06-13 10:40:35

标签: jquery arrays

我不确定这是否是基于数组值定义变量的正确方法。

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

1 个答案:

答案 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>