jQuery param动态对象名

时间:2012-07-13 11:02:08

标签: javascript jquery

为什么我不能在对象中有变量?我得到一个错误:

"Uncaught SyntaxError: Unexpected token this"

我的代码是这样的。

$("#search_options input:checkbox").on('click', function() {
  var params = { 
    $(this).attr('name') : $(this).val(),
  };
  var str = jQuery.param(params);
});

我确定$(this)正在运行,因为我试图在params对象之外调试它。然后我正在工作。

2 个答案:

答案 0 :(得分:3)

对象文字不能包含可变属性名称。您必须像这样分配属性:

...
var params = {};
params[$(this).attr('name')] = $(this).val();
var str = jQuery.param(params);

答案 1 :(得分:2)

如果要将变量的值用作属性名称,则必须使用以下语法:

var params = {}

params[$(this).attr('name')] = $(this).val();

您尝试使用的文字符号要求属性名称是有效的JavaScript标识符。