Javascript 为什么记录到控制台的数据值可以工作,但分配给变量时却不能工作?
这里是Javascript新手。正在尝试设置新的条带签出V3。我需要在Rails中从HTML到Javascript获取会话id HTML文件: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
<%= 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*
)};