我想使用jquery获取输入名称作为属性名称。
html
<input name="data[First][Second]" />
脚本
$.post(
'/url',
{
$("input").prop("name"): $("input").val()
}
);
如何(直接)完成?
答案 0 :(得分:2)
您不能将变量值用作文字中的属性名称。您必须分两步执行此操作并使用bracket notation:
var obj = {};
obj[$("input").prop("name")] = $("input").val();
$.post('/url', obj);
如果您不想打破流程而想要表达式,可以使用函数表达式:
$.post(
'/url', (function(){
var obj = {};
obj[$("input").prop("name")] = $("input").val();
return obj;
})()
);
一个非常小的优点是你不会用新的变量污染外部范围,但它通常不会更清楚。