如何在jQuery Post请求中设置包含动态索引的键名?
解决方案
要实现动态修改POST请求参数的键名,你不能直接在对象字面量中使用变量拼接键名,需要通过方括号语法来动态设置对象的属性名。以下是修改后的代码:
ES6+ 写法(推荐)
function call(obj) { console.log("Call " + obj.value); // 定义动态索引,这里直接复用obj.value作为示例,可替换为任意动态变量 const dynamicIndex = obj.value; // 创建空参数对象 const postData = {}; // 用模板字符串拼接动态键名,通过方括号赋值 postData[`"webdata".web[${dynamicIndex}].Taster`] = '1'; // 发送POST请求 $.post("index.htm", postData); }
ES5 写法(兼容旧环境)
function call(obj) { console.log("Call " + obj.value); var dynamicIndex = obj.value; var postData = {}; // 用字符串拼接动态键名 postData['"webdata".web[' + dynamicIndex + '].Taster'] = '1'; $.post("index.htm", postData); }
关键说明
对象字面量({ key: value })中的键名会被当作固定字符串解析,无法直接嵌入变量。必须先创建空对象,再通过对象[动态键名字符串] = 值的方式,才能让JavaScript正确识别动态生成的键名。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

