0

私は CoffeeScript を初めて使用し、このコードが適切に評価されない理由がわかりません。SyntaxError: 予期しない ELSE が発生しています。私がしようとしているのは、rule_log_type ドロップダウンの選択に基づいて、rule_severity ドロップダウンを動的に更新することです。

jQuery ->
sev = $('#rule_severity').html()
$('#rule_log_type').change ->
    logtype = $('#rule_log_type :selected').text()
    if (logtype == 'Syslog')
        $('#rule_severity')
        .find('option')
        .remove()
        .end()
        .append('<option value="Emergency">Emergency</option>')
        .append('<option value="Alert">Alert</option>')
        .append('<option value="Critical">Critical</option>')
        .append('<option value="Error">Error</option>')
        .append('<option value="Warning">Warning</option>')
        .append('<option value="Notice">Notice</option>')
        .append('<option value="Information">Information</option>')
        .val('Information')
    else if (logtype == 'Microsoft Windows')
        $('#rule_severity')
        .find('option')
        .remove()
        .end()
        .append('<option value="Critical">Critical</option>')
        .append('<option value="Warning">Warning</option>')
        .append('<option value="Information">Information</option>')
        .val('Information')
4

3 に答える 3

1

else ifおそらくではなく であるはずelseです。

else if logtype == 'Microsoft Windows'
于 2013-06-10T08:46:17.493 に答える
0

CoffeeScript はインデントを使用して、関数、制御ブロック、パラメーター リストなどのスコープを識別します。貼り付けたコードには、空の関数を に渡した以外は構文エラーは含まれていませんjQuery(これは と同じ$(document).readyです。次のコードはすべてハンドラーのコンテンツはdocument.ready、DOM コンテンツの準備が整ったときにのみ操作できるためです。

jQuery ->
  sev = $('#rule_severity').html()
  $('#rule_log_type').change ->
    logtype = $('#rule_log_type :selected').text()
    if (logtype == 'Syslog')
      $('#rule_severity')
        .find('option')
        .remove()
        .end()
        .append('<option value="Emergency">Emergency</option>')
        .append('<option value="Alert">Alert</option>')
        .append('<option value="Critical">Critical</option>')
        .append('<option value="Error">Error</option>')
        .append('<option value="Warning">Warning</option>')
        .append('<option value="Notice">Notice</option>')
        .append('<option value="Information">Information</option>')
        .val('Information')
    else if (logtype == 'Microsoft Windows')
      $('#rule_severity')
        .find('option')
        .remove()
        .end()
        .append('<option value="Critical">Critical</option>')
        .append('<option value="Warning">Warning</option>')
        .append('<option value="Information">Information</option>')
        .val('Information')
于 2013-06-11T09:30:57.853 に答える