我把它放在我的模板文件中:
<div>
<label>Category</label>
{{#each categories}}
<input id="category_{{_id}}" type="checkbox" value="{{_id}}" name="category" {{hasCategory}} /> {{name}}
{{/each}}
</div>
我的问题是如何在我的助手中访问输入ID:
"click #CATEGORY_ID_FROM_TEMPLATE_HERE": function() {
var category_id = $('#CATEGORY_ID_FROM_TEMPLATE_HERE').val();
return false;
}
我意识到它可能很简单,但我没有得到它,甚至谷歌搜索它。我知道我可以使用事件并访问它的目标属性,但我想使用jQuery。
如果有人可以帮助我。
答案 0 :(得分:1)
<div>
<label>Category</label>
{{#each categories}}
<input id="{{this._id}}" class="example" type="checkbox" value="{{this._id}}" name="category" {{hasCategory}} /> {{name}}
{{/each}}
</div>
this
我们引用每个文档的实例。
现在,我们使用class selector
示例,因为id need to be unique
"click .example": function() {
//var category_id = $('#example').val();
//console.log(category_id)
console.log(this._id) //this will return the id
return false;
}
答案 1 :(得分:1)
在这种情况下使用ID是不必要的,会导致很多负面影响。特别是,如果您向页面添加其中两个模板,它们将停止工作,因为ID不是唯一的。相反,使用Meteor的内置功能来访问数据上下文:
<div>
<label>Category</label>
{{#each categories}}
<input type="checkbox" value="{{_id}}" name="category" class="category-checkbox" {{hasCategory}} /> {{name}}
{{/each}}
</div>
"click .category-checkbox": function(event) {
// Inside here, this refers to the category object
var category_id = this._id;
var checkbox = $(event.target);
return false;
}
编辑后编辑:
如果您仍想使用jQuery获取相关元素,那么执行此操作的正确方法是$(event.target)
。