主干JS选择不起作用

时间:2014-05-06 15:32:16

标签: backbone.js pug

我有一个主干JS应用程序,它在UI上有一个选择,如下所示:

(模板用翡翠写成)

select.color
  option(value='-1') --select color--
  option(value='0') red
  option(value='1') blue

应用程序是这样的:

events: 
  'change .color': 'changeColor'

changeColor: () ->
  idx = $(@el).find('.color').val()
  color = $(@el).find('.color').filter(idx).text()
  alert("Color is : #{idx}:#{color}")

然而,当我运行它时,它只打印出正确的idx但没有文本。我试图使用$(@el).find('.color').filter(':selected').text() 直接,它也不会工作。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您希望使用.find()而不是.filter(),因为过滤器会过滤select而不是子选项。所以:

$(@el).find('.color').find(':selected').text()

Ps Backbone会自动为您添加查找内容:

$(@el).find('.color');

相当于:

@.$('.color')