Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.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
Javascript 如何在Ruby嵌入式代码中使用html元素的值_Javascript_Jquery_Html_Ruby On Rails_Ruby - Fatal编程技术网

Javascript 如何在Ruby嵌入式代码中使用html元素的值

Javascript 如何在Ruby嵌入式代码中使用html元素的值,javascript,jquery,html,ruby-on-rails,ruby,Javascript,Jquery,Html,Ruby On Rails,Ruby,我有以下代码: <% @groups.each do |group| %> <tr> <td id="groupid"><%= group.id %></td> <td><a href="#dialog" name="modal"><%= group.title %></a></td> </tr> <% end %> <div id

我有以下代码:

<% @groups.each do |group| %>
<tr>
   <td id="groupid"><%= group.id %></td>
   <td><a href="#dialog" name="modal"><%= group.title %></a></td>
</tr>
<% end %> 

<div id="boxes">
   <div id="dialog" class="window">
       <strong><%= @groups.find(3).title %></strong> |  
       <a href="#"class="close"/>Close it</a>
   </div>
</div>

|
当我点击浏览器中的
链接时,我想获取存储在
中的值,并将其传递到
中,其中3是…因此,我将把值存储在


如何实现这一点?

您不能直接将从javascript获得的值(通过
单击
事件)传递给Ruby代码,因为当javascript代码运行时,Ruby已经完成了它的工作,并将html/js内容传递给浏览器。浏览器不能调用Ruby函数,它只能向服务器上的Ruby脚本发出新请求(例如,通过ajax)

现在,我再次查看了您的代码,您的HTML上似乎已经有了所有标题,因此您可以尝试以下方法:

<script type="text/javascript">
$(document).ready(function(){
    $('td a').on('click', function(){
        var title = $(this).html();
        $('#dialog strong').html(title);
    });
});
</script>

<table>
<% @groups.each do |group| %>
  <tr>
      <!-- id changed to class below; you can't have the same id multiple times -->
      <td class="groupid"><%= group.id %></td>
      <td><a href="#dialog" name="modal"><%= group.title %></a></td>
  </tr>
<% end %> 
</table>
<div id="boxes">
    <div id="dialog" class="window">
        <strong></strong> |  <a href="#"class="close"/>Close it</a>
    </div>
</div>

$(文档).ready(函数(){
$('td a')。在('click',function()上{
var title=$(this.html();
$('#dialog strong').html(标题);
});
});
|

注意:这个例子需要jQuery才能工作。

你不能直接这样做,你必须使用Ajax请求一个单独的控制器操作,然后调用
组。在那里找到
。没有Ajax经验,不知道我会怎么做@bfavaretto是对的,有一点改进/机会。您无需单独使用javascript(或jQuery或CoffeeScript)向服务器发出请求即可完成此操作。。。假设您已经拥有要在某个属性或值中显示的数据。从设计的角度来看,如果您需要做一些“不应该”需要来自服务器的更多数据的简单事情,那么您需要弄清楚如何将它们传递到DOM,以便JS可以看到/访问它们。如果它们不只是“there”,您可以使用类似“data foo”的属性来保存“foo”的值。是的,例如,浏览器中已经呈现了一个数字,因此当我单击groupid旁边也呈现的标题时,我想获取groupid的值并将其发送给group。查找(--此处-)…感谢您的努力,但不幸的是,代码不起作用。另外,我并不是试图将值传递给元素,而是试图从中获取值并将其传递到数字3所在的位置!你知道为什么不可能吗?浏览器无法看到
,因此js也无法看到。您不是在尝试显示与单击的id关联的标题吗?为什么不从
的内容中获取它呢?它应该与
将返回的内容相同!这就是我不想只获取title的原因,我正在调用().title之外的其他方法。下面还有一些类似的行,例如。。。但是由于我不能在浏览器中实现这一点,我必须寻找一种通过服务器端实现的方法。。