Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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 为什么记录到控制台的数据值可以工作,但分配给变量时却不能工作?_Javascript_Jquery_Ruby On Rails_Stripe Payments - Fatal编程技术网

Javascript 为什么记录到控制台的数据值可以工作,但分配给变量时却不能工作?

Javascript 为什么记录到控制台的数据值可以工作,但分配给变量时却不能工作?,javascript,jquery,ruby-on-rails,stripe-payments,Javascript,Jquery,Ruby On Rails,Stripe Payments,这里是Javascript新手。正在尝试设置新的条带签出V3。我需要在Rails中从HTML到Javascript获取会话id HTML文件: <%= content_tag :div, id: "temp_information", data: {temp: @session.id} do %> <% end %> <div data-stripe="<%= @session.id %>"> <button id="checkout-but

这里是Javascript新手。正在尝试设置新的条带签出V3。我需要在Rails中从HTML到Javascript获取会话id

HTML文件:

<%= content_tag :div, id: "temp_information", data: {temp: @session.id} do %>
<% end %>
<div data-stripe="<%= @session.id %>">
<button id="checkout-button">Pay</button>
</div>
我的ses_id没有定义。 当我这样做的时候

$('#temp_information').data('temp');
在控制台中,它显示正确的输出。但当我这样做的时候:

var a = $('#temp_information').data('temp');
然后我在控制台中没有定义。我做错了什么? 谢谢你的帮助

$.data(参数)用于存储信息,$.data()用于获取存储的所有数据,因此您只需删除“temp”即可获取数据

var a = $('#temp_information').data();

参考资料:

证明我需要使用:

$( document ).ready(function() {
*my code*
)};

在尝试访问值之前等待加载所有内容。我认为这是因为Rails或TurboLink。不完全确定是哪个。

嗯,JavaScript可以在呈现的HTML上工作。直到我们能够准确地看到您的后端模板是什么,我们猜测。请去掉您的Ruby标记并向我们展示浏览器看到的内容..data()刚刚返回了对象{temp:'foo'}。最终解决了这个问题。需要使用$document.ready。谢谢你的回复!
$( document ).ready(function() {
*my code*
)};