如何在Javascript中调用ruby值
我有一个称为如何在Javascript中调用ruby值,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我有一个称为的ruby值,它输出一个字符串,我想将这个字符串设置为等于document.getElementById(“quoteArea”).value=“value”中的javascript值。我环顾四周,发现了类似的问题,但没有一个能解决我的问题。有什么想法吗?谢谢。如果id为#quoteArea的元素在您的视图中可用,您应该能够使用您在问题中引用的相同erb代码设置其值 如果您无法控制#quoteArea元素,则可以在页面中定义一个javascript变量,以便以后使用: // In Y
的ruby值,它输出一个字符串,我想将这个字符串设置为等于document.getElementById(“quoteArea”).value=“value”
中的javascript值。我环顾四周,发现了类似的问题,但没有一个能解决我的问题。有什么想法吗?谢谢。如果id为#quoteArea
的元素在您的视图中可用,您应该能够使用您在问题中引用的相同erb代码设置其值
如果您无法控制#quoteArea
元素,则可以在页面中定义一个javascript变量,以便以后使用:
// In Your HTML View
<script>
var quote = "<%= @random_quote.quote %>";
</script>
// In a JS File loaded after the variable assignment
document.getElementById("quoteArea").value = quote;
//在HTML视图中
var quote=“”;
//在变量赋值后加载的JS文件中
document.getElementById(“quoteArea”).value=quote;
将该Ruby值分配给JavaScript变量
比如:
var myVariable = "<%= @random_quote.quote %>";
document.getElementById("quoteArea").value = myVariable;
var myVariable=”“;
document.getElementById(“quoteArea”).value=myVariable;
如果您在视图中使用erb:
# your_view.html.erb
document.getElementById("quoteArea").value = "<%= @random_quote.quote %>";
# your_view.html.haml
:javascript
document.getElementById("quoteArea").value = "#{@random_quote.quote}";
您可以在资产管道中使用some.js.erb并从中分配值,这不是一个很好的方法,但只有一种方法,或者您可以在某些元素数据的DOM(文档对象模型)中设置值并从中获取值。下面是一个虚拟示例
<div data-my_value="<%= @random_quote.quote %>"></div>
jQuery("[data-my_value]").data("my_value");
jQuery(“[data-my_value]”)。数据(“my_value”);
诸如此类的事。希望这对你有帮助
干杯您可以制作一个文件.js.erb 这些文件首先由ruby解释,然后由js解释
var jsVariable = "<%=ruby_variable%>";
var jsVariable=”“;
如果您需要将一些数据发送到js文件,并且不希望通过长时间的视图和解析来完成此操作,请查看。这将为通过javascript访问的变量赋值
gon.variable_name = variable_value
# or new syntax
gon.push({
:user_id => 1,
:user_role => "admin"
})
gon.push(any_object) # any_object with respond_to? :each_pair
然后,要在javascript中访问该变量,请执行以下操作:
gon.variable_name
在JS文件中。谢谢!工作得很好。