通过 HTML 字符串将 JS 对象传递给 JS 方法时遇到问题。这是 HTML 字符串的一部分:
onclick='addGrpMember("+c+"); return false;'
当我单击调用此方法时,我看到:意外的标识符
我可以轻松地传入这个 c 对象的属性:
onclick='addGrpMember(\""+ c.contactName +"\",\""+ c.displayName +"\"); return false;'
效果很好。
我在这里缺少什么?顺便说一句,“c”作为参数传递到方法中。 (我在其中执行此代码)。
感谢您提供任何有用的提示!
更新了完整代码:
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' );}
最佳答案
您需要将 c
转换为 JSON 字符串。假设您正在 JavaScript 中创建此字符串。
onclick='addGrpMember("+JSON.stringify(c)+"); return false;'
JSON.stringify是 IE 8+。
话虽如此......可能有一种更好的方法来完成您想要做的事情,但是如果没有看到您的整个方法,我们无法真正发表太多评论。一般来说,内联 JavaScript 不是正确的选择。
关于javascript - 通过 HTML 字符串传递 JS 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24915896/