在通过HTML String将JS对象传递给JS方法时遇到问题。这是HTML字符串的一部分:
onclick='addGrpMember("+c+"); return false;'
当我点击调用此方法时,我看到:意外的标识符
我可以很容易地传入这个c Object a la:
的属性onclick='addGrpMember(\""+ c.contactName +"\",\""+ c.displayName +"\"); return false;'
这很好用。
我在这里缺少什么?顺便说一句,“c”作为arg传递给方法。 (我正在执行此代码)。
感谢您提供任何有用的提示!
更新了完整代码:
contact = "<tr><td style='width:60px; padding:12px 6px' title='"+ c.contactName +"'><span class='contactAvatar'><img src='<%= context %>/app/user/image?loginName="+ c.contactName +"' alt='' /></span></td><td style='padding-top:12px'><span class='contactTitle'>"+ c.displayName +"</span><br/><span class='contactTitleCompany'>"+c.title+ " at " +c.companyName+"</span><br/><a href='mailto:"+c.contactName+"'><i class='icon-envelope'></i> "+c.contactName+"</a></td><td style='padding-top:30px;padding-right:10px;text-align:right'><a href='#' data-toggle='tooltip' data-placement='right' title data-original-title='Add Member' onclick='addGrpMember("+c+"); return false;' class='addIcon'></a></td></tr>";
方法:
function addGrpMember( c ){
selectedGroup.members.push( c );
populateSearchResults( selectedGroup.members, 'groups' );}
答案 0 :(得分:1)
您需要将c
转换为JSON字符串。假设您在JavaScript中创建此字符串。
onclick='addGrpMember("+JSON.stringify(c)+"); return false;'
JSON.stringify是IE 8 +。
有了这样说......可能有更好的方法来做你想要做的事情,但是如果没有看到你的整个方法,我们就不能真正评论那么多。通常内联JavaScript不是可行的方法。
答案 1 :(得分:0)
我认为,无需连接字符串或提取对象元素,只需将此代码放在按钮事件onClick上
onclick='addGrpMember(c); return false;'
如果c是你的javascript对象
答案 2 :(得分:0)
它应该只传递对象变量名称:
<button onClick="addGrpMember(c);">Add Group Member</button>
然后在您的JavaScript中,例如:
var c = {
contactName : "value1",
displayName : "value2"
};
var addGrpMember = function (groupMember) {
// Do something with the group member
return false;
};
这是一个有着类似代码的工作小提琴:http://jsfiddle.net/vgF8C/