我必须为 jquery-tmpl 脚本中的 div 创建一个小部件。
<script id="movieTemplate" type="text/x-jquery-tmpl">
<div id='name'>${Name}</div>
</script>
在上面的脚本中,我想访问name
div 并创建一个小部件。
注意:我打算将该脚本附加到另一个小部件中,所以在这里我不知道“这个模板的父级是什么”。
我怎么能做到这一点?
我必须为 jquery-tmpl 脚本中的 div 创建一个小部件。
<script id="movieTemplate" type="text/x-jquery-tmpl">
<div id='name'>${Name}</div>
</script>
在上面的脚本中,我想访问name
div 并创建一个小部件。
注意:我打算将该脚本附加到另一个小部件中,所以在这里我不知道“这个模板的父级是什么”。
我怎么能做到这一点?
在您显示的代码中,字符串<div id='name'>${Name}</div>
位于节点内部,因此不会转换为 DOM 节点,并且在实际呈现模板之前script
您无法访问该节点。div
您可以渲染节点:$.tmpl(myTemplate, myData).appendTo(myDomElement)
,然后您可以访问创建的节点:$(myDomElement).find('div#name')
并使用它做任何您想做的事情(例如:$(myDomElement).find('div#name').datepicker()
...)
模板只是使构建 html 字符串更容易的东西,它们不适用于诸如小部件初始化之类的逻辑。
将 html 转换为 dom 的代码是小部件创建的地方。您的模板确实不应该知道“这个模板的父级是什么”,因为它只是一个哑字符串。