javascript - 通过 HTML 字符串传递 JS 对象

标签 javascript html

通过 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/

相关文章:

html - 列表中的图标不适合左边距?有一个空间

javascript - 数据切换图像变化

javascript - 单调栈问题的时间复杂度

javascript - 不理解 Mongoose 模式数组语法

javascript - 如何从 ajax 实时搜索中获取 HTML 文本框的值?

javascript - 使用 JSON 解析/解析 js 对象时,返回方法中的函数范围会丢失

javascript - 从克隆元素中删除隐藏元素

php - 在 HTML 中将 MySQL 表的相似行分组在一起

html - Firefox 中的表单布局损坏

javascript - 为什么 Chrome 粘贴图片时会将图片数据转换为 "image/png"mime 类型?