在我的js函数中,我创建了a div and a link
,当点击链接时,我会将参数传递给另一个js函数?我的代码出了什么问题?
js function1
//pass a json:the browser show wrong:SyntaxError: missing ] after element list
//passJson([object Object])
var dataItem=getDataItem();//a json object which has title and name property
var divStr="<div><a style='cursor: pointer' onclick='passJson(" + dataItem +")'><span title='spantitle'><i class='icon-mouse'></i></span></a>;</div>";
所以我尝试添加&#34; []&#34;功能,但它仍然显示错误。
js function2
//pass a json:the browser show wrong:SyntaxError: missing ] after element list
//passJson([object Object])
var dataItem=getDataItem();// a json object which has title and name property
var divStr="<div><a style='cursor: pointer' onclick='passJson([" + dataItem +"])'><span title='spantitle' ><i class='icon-mouse'></i></span></a>;</div>";
答案 0 :(得分:4)
通常,您不会将其称为JSON对象。你只需称它为JavaScript对象。
代码的方式,您不需要进行字符串连接。你可以像
一样onclick='passJson(dataItem)'
function passJson(obj) {
console.log(obj);
}
var dataItem={ title: "hello", name: "snoopy" }; //a json object which has title and name property
var divStr="<div id='foo'><a style='cursor: pointer' onclick='passJson(dataItem)'><span title='spantitle'><i class='icon-mouse'></i>hmmm</span></a>;</div>";
$("body").append(divStr);
当您点击“hmmm”链接时它会起作用。
您可能希望单独添加标记,然后将点击处理程序绑定到链接,因为通常情况下,我们希望采用unobtrusive JavaScript的方法。
答案 1 :(得分:2)
function passJson(data) {
console.log(data);
}
function getDataItem (){
return {'title':'mytitle','name':'helloName'};
}
$(document).ready(function(){
var dataItem=getDataItem();// a json object which has title and name property
dataItem = JSON.stringify(dataItem);
var divStr="<div><a style='cursor: pointer' onclick='passJson("+dataItem+")'> hello clik me<span title='spantitle'><i class='icon-mouse'> </i> </span></a>;</div>";
$('body').html($(divStr));
});