Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何在rails中使div id变为变量?_Jquery_Ruby On Rails_Css_Ajax_Prototypejs - Fatal编程技术网

Jquery 如何在rails中使div id变为变量?

Jquery 如何在rails中使div id变为变量?,jquery,ruby-on-rails,css,ajax,prototypejs,Jquery,Ruby On Rails,Css,Ajax,Prototypejs,我觉得应该有一个简单的方法来做到这一点,但我只是不知道它是什么。我有一个要显示的数据列表,我想包括一个AJAX“readmore”函数来扩展每个段底部的信息。要做到这一点,我需要在每个段中使用唯一的div id。我有以下代码: <% for choice in @student_choices %> <div id= "student_description", style="display:none;"> <%= choice[:descr

我觉得应该有一个简单的方法来做到这一点,但我只是不知道它是什么。我有一个要显示的数据列表,我想包括一个AJAX“readmore”函数来扩展每个段底部的信息。要做到这一点,我需要在每个段中使用唯一的div id。我有以下代码:

<% for choice in @student_choices %>
    <div id= "student_description", style="display:none;">
        <%= choice[:description]%>
    </div>
    <%= link_to_function "Read More", "Element.show("student_description")"%>
<% end %>


但由于存在多个div id,因此单击“readmore”仅显示第一个div id。如何插入变量div ID?我知道如何在PHP中实现这一点,但这让我感到困惑。即使我们将div ID本身设置为变量,如何让Element.show接受变量?

您可以执行以下操作:

<% div_id = "student_description_#{choice.id}" -%>

<div id="<%= div_id -%>", style="display:none;">
    <%= choice.description %>
</div>

<%= link_to_function "Read More", "Element.show('##{div_id}')" %> 

您可以执行以下操作:

<% div_id = "student_description_#{choice.id}" -%>

<div id="<%= div_id -%>", style="display:none;">
    <%= choice.description %>
</div>

<%= link_to_function "Read More", "Element.show('##{div_id}')" %> 

传统的rails方法是使用

然后你可以做类似的事情

<% for choice in @student_choices %>
    <div id="<%= dom_id(choice) %>" style="display:none;">
        <%= choice[:description]%>
    </div>
    <%= link_to_function "Read More", "Element.show('#{dom_id(choice)}')"%>
<% end %>

传统的rails方法是使用

然后你可以做类似的事情

<% for choice in @student_choices %>
    <div id="<%= dom_id(choice) %>" style="display:none;">
        <%= choice[:description]%>
    </div>
    <%= link_to_function "Read More", "Element.show('#{dom_id(choice)}')"%>
<% end %>


虽然您可以使用给定的示例(哪种方法有效),但我是否建议您使用rails函数(http://api.rubyonrails.org/classes/ActionView/Helpers/RecordTagHelper.html ). 然后,在按钮/链接上,您只需找到最近的具有特定类的div,然后拉取id并执行显示逻辑。

同时您可以使用给定的示例(哪种工作方式),我建议您使用rails函数(http://api.rubyonrails.org/classes/ActionView/Helpers/RecordTagHelper.html ). 然后,在按钮/链接上,您只需找到最近的具有特定类的div,然后提取id并执行显示逻辑。

您的引号不匹配,双引号内不能有双引号您的引号不匹配,双引号内不能有双引号Wesome。我知道你在这里做什么,但它不喜欢中的语法,抛出“unterminatedstring遇到文件末尾”。这就是我无法让它接受变量的原因。已编辑。因为你已经在Ruby中的link_to_函数参数中了,所以不需要再做一个块,只需要基本的插值就可以了。啊,明白了。只要你从###{div_id}中取第一个#,这就行了。谢谢你能解释一下如何从jquery中访问这个变量吗?太棒了。我知道你在这里做什么,但它不喜欢中的语法,抛出“unterminatedstring遇到文件末尾”。这就是我无法让它接受变量的原因。已编辑。因为你已经在Ruby中的link_to_函数参数中了,所以不需要再做一个块,只需要基本的插值就可以了。啊,明白了。只要你从###{div_id}中取第一个#,这就行了。谢谢您能解释一下如何从jquery访问该变量吗?