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/

相关文章:

html - 如何加载外部 jQuery 模板

jquery - 如何将数据附加到 jquery tmpl

javascript - 刷新动画然后重定向到不同的 url

javascript - IE8 插件有哪些对 Web 开发人员有用?

javascript - KnockoutJS - 模板上的点击事件

jquery - 与 JQuery 模板的 knockout 绑定(bind)不显示数据?

jquery - 浏览器返回 HTTP 200 且响应文本为空

javascript - Jquery,将标题转换为 Slug

javascript - 将文本区域中的 "+"更改为 &lt;input type ='checkbox' >

jquery-plugins - jQuery 模板内的 Javascript 函数无法正常工作