javascript变量名称替换实际值

时间:2013-10-14 09:28:19

标签: javascript html ajax

我有一个javascript函数...

function check_val(name, cat)
{
    alert(cat);

    var val = name.indexOf('[');
    if (val == -1){
        //$('input[type="checkbox"][value='+ name + ']')[0].click()      
        val = '"' + name + '"'
        type = "'" + cat + "'"
        $.get(url,{'ajaxtype':'content', type : val}, function(data{$('#search_container').html(data);$('#rotator').hide();});
    }
}

当我用参数说check_val('xyz','pqr')

来调用此函数时

问题是当我检查我正在获取的request.get参数时

<QueryDict: {u'type': [u'"xyz"'], u'ajaxtype': [u'content']}>

而不是

<QueryDict: {u'pqr': [u'"xyz"'], u'ajaxtype': [u'content']}>

2 个答案:

答案 0 :(得分:1)

预先构建对象并使用数组下标语法:

var requestData = { 'ajaxtype': 'content' };
requestData[type] = val;
$.get(url, requestData,
  function(data{$('#search_container').html(data);$('#rotator').hide();});

答案 1 :(得分:0)

而不是{'ajaxtype':'content', type : val}尝试{'ajaxtype':'content', "'" + cat + "'" : val}

这样JS应该知道它不是键名而是变量。