Jquery get 数组
- 起因:为了导出文件,使用 form 格式
- 使用 form 上传参数,下载文件,就会出现 obj 对象在参数里显示为
[object object]
或者object
- 解决方案
复制代码
当前端没有页面时,使用
var form = $("
来模拟生成一个 form 表单进行提交; 其中参数使用:
for(var key in params) { var input1 = $(""); // 用于屏蔽对象 // if(typeof params[key] == 'object') break; input1.attr("type", "hidden"); input1.attr("name", key); // input1.attr("value", typeof regionAndTimeParams[key] == "object" ? JSON.stringify(regionAndTimeParams[key]) : regionAndTimeParams[key]); input1.attr("value", temp[key]); form.append(input1);}复制代码
针对 对象数组
的提交,使用
var temp = {};if(typeof params[key] == 'object' ) { // 此处处理的是 对象数组,对象比较简单 params.map(function (val, index) { for(var key_sub in val) { temp[ key + '[' + index + '].' + key_sub] = val[key_sub]; } }) // 不影响原来的 params $.extend(temp, params);}复制代码
据此,完成全部的替换,达到与前端写定 form
的一样效果。
补充
在 js 中,获取一个 obj 的对象名
// domain 为 obj 所在的域。可为全局,也可以为某个对象function getObjName(obj, domain){ // obj 绑定在 全局时适用 var domain = domain || (typeof global == 'undefined' ? window : global); for(let name in domain){ if(domain[name] === obj){ return name; } }}复制代码