如何在流星模板事件中从html标签中获取文本?

时间:2015-04-27 07:08:12

标签: jquery templates javascript-events meteor meteor-helper

如何从以下代码中获取“选项1”:

<template name="MyTemplate">
   <div class="dropdown">
      <a class="dropdown-toggle count-info" data-toggle="dropdown" href="#" aria-expanded="false">
         <button type="button" class="btn btn-sm btn-primary">Add</button>
      </a>
      <div class="dropdown-menu dropdown-alerts">
         <form method="post" id="some-form" data-remote="true" accept-charset="UTF-8">
            <div class="form-group">
               <label>Select Option</label>
               <div class="input-group">
                  <select class="chosen-select" tabindex="2">
                     <option value="op1">Option 1</option>
                     <option value="op2">Option 2</option>
                     <option value="op3">Option 3</option>
                  </select>
               </div>
            </div>
            <input type="submit" value="Add" data-disable-with="Saving..." class="btn btn-sm btn-success">
         </form>
      </div>
   </div>
</template>

我正在使用选择的插件(http://harvesthq.github.io/chosen/)来表示样式。因此,下拉节点的转换方式不同,有一个节点如下:

<a class="chosen-single" tabindex="-1">
    <span>Option 1</span>
</a>

其中包含下拉列表中的选定值。

在模板内部事件中,我的代码是:

template.find("#some-form .chosen-single span");

它给了我:

<span>Option 1</span>

我想要“选项1”。如果我这样写:

// giving "undefined"
template.find("#some-form .chosen-single span").html; 
or
// giving error :: Uncaught TypeError: undefined is not a function
template.find("#some-form .chosen-single span").html();

2 个答案:

答案 0 :(得分:1)

对此文档中解释的所有其他信息不确定: http://meteor.github.io/blaze/docs.html#eventmaps

但对我来说这个代码是有效的(流星1.1.0.3) HTML:

<template name="newTextLabel">
      <span class="label label-primary pull-right genre">{{this}}</span>
</template>

事件:

Template.newTextLabel.events ({
    'click .genre': function(event) {
     sAlert.info('test: ' + event.target.textContent);
    //  Router.go('somePath', {
    //   _id: this.genrePath
    //  });

   }
})

答案 1 :(得分:0)

template.find("#some-form .chosen-single span").text();