Javascript 88动态选择菜单(修订版)在rails上不起作用

Javascript 88动态选择菜单(修订版)在rails上不起作用,javascript,jquery,ruby-on-rails,coffeescript,Javascript,Jquery,Ruby On Rails,Coffeescript,我在railscast剧集上执行动态选择菜单时遇到问题,因为它不能正常工作 “状态”菜单提供所有可用选项“国家/地区+状态” 我一步一步地跟踪视频,寻找可用的解决方案,但毫无用处,但有一个问题我无法解决 coffescript people.js.coffee jQuery -> states = $('#person_state_id').html() $('#person_state_id').parent().hide() $('#person_country_id').chang

我在railscast剧集上执行动态选择菜单时遇到问题,因为它不能正常工作

“状态”菜单提供所有可用选项“国家/地区+状态”

我一步一步地跟踪视频,寻找可用的解决方案,但毫无用处,但有一个问题我无法解决

coffescript people.js.coffee

jQuery ->

states = $('#person_state_id').html()
$('#person_state_id').parent().hide()
$('#person_country_id').change ->
  country = $('#person_country_id :selected').text()
  escaped_country = country.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1')
  options = $(states).filter("optgroup[label='#{escaped_country}']").html()
  console.log(options)
  if options
    $('#person_state_id').html(options).parent().show()
  else
    $('#person_state_id').empty().parent().hide()
new.html.erb 新人

我还找到了一个用gem'jquery turbolinks'更新gem文件的解决方案 并且/=的application.js文件需要jquery.turbolinks,但没有用处


请帮助。

我认为您需要删除此行中的单引号:

options = $(states).filter("optgroup[label='#{escaped_country}']").html()
成功

options = $(states).filter("optgroup[label=#{escaped_country}]").html()
试着用这个:


=f.select:country\u id,grouped\u options\u for\u选择一些\u选项

谢谢,但不幸的是,问题仍然存在。另外,请尝试删除jQuery->后面的白线。咖啡语法有点复杂。我删除了它,但它没有意义。咖啡的一切都很重要。。白线通常不是问题,除非很少。。。但是缩进是非常重要的。。。如果你像你的问题一样喝咖啡,或者下面的行是缩进的?调整缩进后
options = $(states).filter("optgroup[label=#{escaped_country}]").html()