0
$('i.icon-angle-up').on('click', function() {
    var data = {$(this).attr('name') : 'asc')}
    $.post('', data, function() {
        window.location.reload();
    });
});

我想将一些数据发布到服务器,但数据的名称来自变量($(this).attr('name')),我该怎么办?

我试过了

$.post('', {"$(this).attr('name')" : 'asc')}, function() {
        window.location.reload();
    });

但进展并不顺利。

谢谢你们。

4

2 回答 2

3

对象的键不能是动态的,在这种情况下,您需要使用括号表示法来创建对象。

尝试

var data = {};
data[$(this).attr('name')] = 'asc'
$.post('', data, function() {
    window.location.reload();
});
于 2013-08-12T13:21:48.313 回答
0

另一种选择是使用带有 eval (邪恶)的对象:

var data = {};
eval('data.' + $(this).attr('name') + ' = \'asc\'');
于 2013-08-12T13:51:15.543 回答