如何把object对象作为参数代入js函数中呢?

crossbet 2017-09-05 03:39:33
我在bootstrap-table的formatter方法中使用了一个函数:

function (value, row, index) {
var e = '';
e = '<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-lg" onclick="processBR(' + row+')">审批</button>';
return e;
}
我在调试中看到row对象此时是有值的:
typeof(row) "object" String
- row {...} Object
+ __proto__ {...} Object
AssignQuantity 0 Number
AuditState 1 Number
BorrowDays 5 Number
Borrower "admin" String

但是把row作为参数代入以后变成了[object Object]

"<button type=\"button\" class=\"btn btn-primary\" data-toggle=\"modal\" data-target=\".bs-example-modal-lg\" onclick=\"processBR([object Object])\">审批</button>"
请帮忙看下应该如何将row正确传入processBR函数呢
...全文
2254 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wz_zero 2018-12-20
  • 打赏
  • 举报
回复
那如果e中用多个按钮呢。
Go 旅城通票 2017-09-06
  • 打赏
  • 举报
回复
引用 2 楼 crossbet 的回复:
[quote=引用 1 楼 functionsub 的回复:] 这个做不到哦。 你是组装html,任何JS对象传进来并且组装后,都会当做字符串去组装了。 如果要达到你要的效果,是要改写函数体了。
              function (value, row, index) {
                    var e = '';
                    e = '<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-lg">审批</button>';
                    e = $(e);//此处将html转换成jquery对象
                    e.click(function(){
                        processBR(row);
                    })
                    return e;
                }
这样就可以了,当然,在你原本将html插入到页面中的时候,就不能用innerHTML了,这里返回的是一个jquery对象,要用jquery插入元素的方法。 如果不用jquery就写成源生dom,代码量多一点,不赘述了。
谢谢!感觉我把问题想简单了,实现起来确实有点复杂,所以最后直接把这个对象扔到session里面了[/quote] 传递行下标或者记录id就行了吧,复制数据通过html拼凑会出问题,然后调用组件id获取所有数据后通过下标或者或者遍历通过id来获取

Web开发学习资料推荐
jQuery dataType指定为json注意事项
javascript解码读取二维码信息
crossbet 2017-09-06
  • 打赏
  • 举报
回复
引用 1 楼 functionsub 的回复:
这个做不到哦。 你是组装html,任何JS对象传进来并且组装后,都会当做字符串去组装了。 如果要达到你要的效果,是要改写函数体了。
              function (value, row, index) {
                    var e = '';
                    e = '<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-lg">审批</button>';
                    e = $(e);//此处将html转换成jquery对象
                    e.click(function(){
                        processBR(row);
                    })
                    return e;
                }
这样就可以了,当然,在你原本将html插入到页面中的时候,就不能用innerHTML了,这里返回的是一个jquery对象,要用jquery插入元素的方法。 如果不用jquery就写成源生dom,代码量多一点,不赘述了。
谢谢!感觉我把问题想简单了,实现起来确实有点复杂,所以最后直接把这个对象扔到session里面了
functionsub 2017-09-05
  • 打赏
  • 举报
回复
这个做不到哦。 你是组装html,任何JS对象传进来并且组装后,都会当做字符串去组装了。 如果要达到你要的效果,是要改写函数体了。
              function (value, row, index) {
                    var e = '';
                    e = '<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-lg">审批</button>';
                    e = $(e);//此处将html转换成jquery对象
                    e.click(function(){
                        processBR(row);
                    })
                    return e;
                }
这样就可以了,当然,在你原本将html插入到页面中的时候,就不能用innerHTML了,这里返回的是一个jquery对象,要用jquery插入元素的方法。 如果不用jquery就写成源生dom,代码量多一点,不赘述了。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧