我想将Objects作为参数传递给javascript函数和
我曾尝试过以下内容,实际上iam在innerHtml中调用函数函数。
var tempObj={
result:results,
jsobj:jsObj
}
str +='<input type="button" onclick="buildCstrWiseChart('+tempObj+')" value="View" class="btn btn-info">';
但这对我来说不起作用我得到的错误就像..
SyntaxError: missing ] after element list
[Break On This Error]
buildCstrWiseChart([object Object])
任何人都可以帮忙...
答案 0 :(得分:4)
您将对象视为字符串。这是错误。
tempObj
是全局变量吗?如果是这样,请执行
str +='<input type="button" onclick="buildCstrWiseChart(tempObj)" value="View" class="btn btn-info">';`
答案 1 :(得分:2)
对象的字符串表示只是[object Object]
所以当您在构建HTML时尝试连接它时,最终会得到
onclick="buildCstrWiseChart([object Object])"
这是无效的HTML。 [object
部分被解析为数组的开头,但Object]
部分不是有效的数组语法。
我建议您使用jQuery实际创建DOM元素,而不是构建HTML字符串:
$('<input type="button"/>', {
value: 'View',
className: 'btn btn-info'
}).click(function() {
buildCstrWiseChart(tempObj);
});
然后使用.append()
或.appendTo()
jQuery函数将该元素添加到您希望它包含在内的任何包含元素。
答案 2 :(得分:0)
注意:OP已更改自最初发布以来发布的代码。
我打赌问题是这个:
...onclick="buildCstrWiseChart('+tempObj+')"...
当tempObj
不是字符串以外的其他内容时,我认为这不起作用。在任何情况下似乎都很危险。
您真正需要做的是将实际对象放在字符串中,放入引用它的值(可能构建id:object的字典),并将id作为数据属性包含在内。然后在您的onclick方法中,您可以查找该属性,并找到所提供ID的对象。
答案 3 :(得分:-1)
嗯,问题在于你的函数someFunc
。
以下示例完美无缺:
var f = function (el){
alert(el)
};
var x = {a: "hey", b: "ho"};
然后
f('hi');
f(x);
没有错误。