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

时间:2012-02-02 10:23:07

标签: 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>

那么有什么建议吗?

2 个答案:

答案 0 :(得分:1)

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

 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>

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

答案 1 :(得分:0)

这就是你想要的:

console.log($('<div>').append( $data ).remove().html());

希望这有帮助。