Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在事件上访问模板的dom元素?_Javascript_Meteor - Fatal编程技术网

Javascript 如何在事件上访问模板的dom元素?

Javascript 如何在事件上访问模板的dom元素?,javascript,meteor,Javascript,Meteor,如何访问meteor Template.name.events中的模板元素? 这是一个简单购物车的例子, 购物车中无法访问“数量” 模板 <div class="col-sm-3"> {{name}} </div> <div class="col-sm-3"> ${{cost}} </div> <div class="col-sm-3"> <input type="number" class="qty" l

如何访问meteor Template.name.events中的模板元素? 这是一个简单购物车的例子, 购物车中无法访问“数量”

模板

<div class="col-sm-3">
   {{name}}
 </div>
 <div class="col-sm-3">
  ${{cost}}
 </div>
 <div class="col-sm-3">
  <input type="number" class="qty" length="3" min="1" max="5">
 </div>
 <div class="col-sm-3">
  <button class="btn btn-success add">Add</button>
 </div>

在Meteor中,
参数引用触发事件的元素的数据上下文。看见不要与jquery事件中的
混淆,例如,它是对调用的DOM元素的引用。因此,您可以访问每个
产品的
名称
id
成本
。 如果需要输入值,一种方法是使用表单并发送整个表单,或者将模板实例传递给事件并在其中查找,如下所示

Template.productsList.events({
  'click .add': function (event, template) {
    var qty = template.find('.qty').value;
    console.log(qty);
}
但是,我必须提到的是,这将遍历模板并找到类“qty”的第一个元素,对于具有相同类的多个元素的情况,这将无法实现您的目标。在您的情况下,您应该使用唯一Id。 你可以这样做

<input type="number" class="qty" id="product_{{id}}" length="3" min="1" max="5">
事实上。应该这样做。让我知道它是否适合你

<input type="number" class="qty" id="product_{{id}}" length="3" min="1" max="5">
var qty = template.find('#product_'+this.id).value;