jquery-templates - 如何将字符串转换为jquery对象?

标签 jquery-templates jquery

我正在为我的项目使用 jquery 模板。我面临的问题是,在渲染模板时,我将 $data 转换为字符串并将其传递到 onclick 函数中 [请参阅下面的代码]。

<script id="Item" type="text/x-jquery-tmpl">
    <li id="${ID}" class="card red ui-state-default">
        <a class="desc" href="" onclick="return $$.popup.eItem('${($data)}');"> ${$data.Desc} </a> 
    </li>
</script>

$data对象转换为字符串并将其传递给函数

onclick="return $$.popup.eItem('${($data)}');"

这里,$data是一个包含实际数据的对象。当我单击链接时,我得到的传递字符串为 "[object Object]" 并且我想将其再次转换回 jquery 对象,以便我可以在代码中使用它。

我可以使用“JSON.stringify()”将 $data 对象转换为 JSON,如下所示

onclick="return $$.popup.editCard('${JSON.stringify($data)}');"

但是当模板呈现为 html 时,这是输出:

<a class="desc" href="" onclick="return $$.popup.eItem('{&quot;TemplateName&quot;:&quot;CardItem&quot;,&quot;ID&quot;:&quot;lc822&quot;,&quot;Desc&quot;:&quot;make card EntityAssignId = 0&quot;,&quot;CardId&quot;:822,&quot;LaneId&quot;:665,&quot;Priority&quot;:1,&quot;AssignedEntityId&quot;:0,&quot;Pic&quot;:null,&quot;SortOrder&quot;:2}');">make card EntityAssignId = 0</a>

有什么建议吗?

最佳答案

如果您想访问数据对象的属性,也许您应该访问它们:

 onclick="return $$.popup.eItem('${($data.ID)}');"

这样你就得到了ID属性。你会得到“[object Object]”,因为这是 javascript 将对象转换为字符串的方式(如果你调用alert($data);

,你会得到相同的结果

根据您的示例,我希望我的代码转换为

<a class="desc" href="" onclick="return $$.popup.eItem('lc822');">make card EntityAssignId = 0</a>

因为从您的“字符串化”代码中我可以看到 $data 的属性 ID 等于 lc822

关于jquery-templates - 如何将字符串转换为jquery对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9110647/

相关文章:

javascript - 没有 jquery 的 jquery 的 'trigger' 方法是什么?

jQuery tmpl : How do I render Html?

javascript - url参数双重编码

Jquery tmpl 从函数返回 HTML

javascript - 使用 JQuery/Json 填充选择列表的最佳方式?

javascript - 打开展开/关闭回到原始尺寸一系列带有 img 淡入淡出的框

jquery - 是否有一个简单的 jQuery 函数来固定和取消固定 h1 标签?

javascript - 如何使用 jquery 在移动模式下不缩小菜单栏中的文本?

asp.net-mvc-3 - 放置模板 View 和主干 View 代码的最佳实践是什么

jquery - knockout 模板名称构建