2016-05-23 16 views
0

Ich bekomme diesen Fehler, wenn ich versuche, die Umschaltfunktion zu verwenden. Es könnte sein, wegen <% = i%>, aber ich bin nicht sicher,Uncaught SyntaxError: Unerwartetes Token ILLEGAL bei Toggle

<% @categorias.each do |categoria| %> 
    <%i += 1%> 
    <div id = "Categoria" onclick = "$(#<%=i%>).toggle();"> 
    <b> <%= categoria.categoria_pt %></b> 
    </div> 
    <% @pratos_precos.each do |pratos_preco| %> 
    <% if @pratos.find(pratos_preco.prato_id).categoria_pratos_id.to_s == categoria.id.to_s %> 
     <div id = <%=i%> style = "display:none"> 
     <tr> 
      <table class="table-condensed table-bordered" style= "width: 98%"> 
      <td><%= @pratos.find(pratos_preco.prato_id).nome_pt %></td> 
     </div> 

ich diesen Fehler, wenn ich auf der Kategorie div klicken, aber ich weiß nicht, warum.

Wenn ich es wie folgt tun:

<div id = "Categoria" onclick = "$("#<%=i%>").toggle();"> 

ich diesen Fehler:

Uncaught SyntaxError: Unexpected token } 

Antwort

1

diesen Code Versuchen:

<% @categorias.each do |categoria| %> 
    <% i += 1 %> 
    <div id = "Categoria" onclick = "$('#<%= i %>').toggle();"> 
    <b><%= categoria.categoria_pt %></b> 
    </div> 
    <% @pratos_precos.each do |pratos_preco| %> 
    <% if @pratos.find(pratos_preco.prato_id).categoria_pratos_id.to_s == categoria.id.to_s %> 
     <div id = "<%= i %>" style = "display:none"> 
     <tr> 
     <table class="table-condensed table-bordered" style= "width: 98%"> 
      <td><%= @pratos.find(pratos_preco.prato_id).nome_pt %></td> 
     </div> 

Sie werden bemerken, dass der #<%= i %> Abschnitt jetzt in einfache Anführungszeichen eingeschlossen, um den resultierenden jQuery-Selektor gültig zu machen. Einfache Anführungszeichen werden anstelle von Anführungszeichen verwendet, da doppelte Anführungszeichen bereits den Handler onclick umgeben, der den jQuery-Selektor enthält.

Auch die Zeile mit <div id = "<%= i %>" style = "display:none"> verwendet jetzt doppelte Anführungszeichen um den ID-Wert, gemäß HTML-Spezifikationen.

Mit diesen zwei Änderungen sieht es so aus, als ob dies wie erwartet funktionieren sollte.

+0

Funktioniert wie ein Charme! Vielen Dank! ;) – Boltz0r

Verwandte Themen