一个html标签,其ID具有JSRendered Value,它的值在jquery脚本中读取不会发生?

时间:2013-07-26 06:41:11

标签: jquery jsrender

我在我的应用程序中使用JSRender。

<html> 
<body> 
    {{for Comments}}  
        <input id="id_{{:CommentId}}" type="hidden" value="-1" />
        <textarea id="cmt_{{:TopicId}}" ......... />
    {{/for}}
</body>
</html>
<script type="text/javascript">
 $(document).ready(function () {

  //The below code gets executed / works fine.
  $('#cmt_{{:TopicId}}').bind('keyup keydown paste', function (e) {
    //my logic        
  });

  //This code doesnot work fine, instead of -1, it gives undefined.
  var rankAction = $("#id_{{:CommentId}}").val();
});        
</script>

我希望rankAction变量提供-1,而它返回undefined,为什么会这样?

是否只是因为包含JSRendered值的id无法在脚本编码中读取?

那么为什么另一部分即cmt{{:TopicId}}返回一个值?

哪里错了?

1 个答案:

答案 0 :(得分:1)

堆叠溢出的人:我为使这个成为“答案”而道歉,但这些评论并不足以描述我的问题。

@ismail baig:调用jsrender模板,例如:

// Render the template with the movies data and insert
// the rendered HTML under the "movieList" element
$( "#movieList" ).html(
    $( "#movieTemplate" ).render( movies )
);

注意,模式是一些template.render(datalist),其中模板可以使用:

定义
<script id="movieTemplate" type="text/x-jsrender">
    <div>
        {{:#index+1}}: <b>{{>name}}</b> ({{>releaseYear}})
    </div>
</script>

#movieList只是一个元素。 movies是一个javascript数组。我没有看到这三个项目:模板,数据列表,以及在示例中呈现模板的调用。

作为参考,请查看此page并执行查看源代码以查看代码,模板和用法。