繁体   English   中英

将信息从div传递给javascript

[英]Pass information from div to javascript

我是新手,我第一次尝试使用javascript。 我有一个调用javascript的div。 我有一个时区控制器,一个show.html来渲染时区。

<%= render @user.timezones.paginate(page: params[:page]) %>

我的每个timzone的部分文件,_timezone.html,erb:

<tr>
<td><%= timezone.name %></td>
<td><%= timezone.city %></td>
<td><%= (timezone.positive ? '+ ' : '- ') + timezone.hours.to_s + ':' + timezone.minutes.to_s %></td>
<td><div class="time-rect-container" data-positive="<%= timezone.positive %>" data-hours="<%= timezone.hours %>" data-minutes="<%= timezone.minutes%>"></div></td>
<td><%= link_to "edit", edit_timezone_path(timezone) %> </td>
<td><%= link_to "delete", timezone, method: :delete,
                                   data: { confirm: "You sure?" } %> </td>

对于每个用户,我的数据库中的每个时区都会调用此部分。

我有javascript为:

$(document).ready(function () {
setInterval(function () {
 time_div = $('.time-rect-container');
 var dt = new Date();

 var x = time_div.data('hours');
 var y = time_div.data('minutes');
 z = time_div.data('positive') 
 utchours = dt.getUTCHours();
 utcminutes = dt.getUTCMinutes();
 utcseconds = dt.getUTCSeconds();
 if (z == true)
    var time = parseInt( utchours + x + (utcminutes + y) / 60) % 24 + ":" + (utcminutes + y) % 60 + ":" + dt.getUTCSeconds();
 time_div.html(time)
}, 1000);
});

我希望javascript每次都返回不同的时间,具体取决于小时,分钟的时区。 但是对于每个时区,我在javascript中获得的数据是相同的,即,我检索的数据的小时和分钟对于每个时区保持不变。 有人可以帮忙解决这个问题吗?

您可以使用Html数据属性将信息发送到javascript。

您可以使用属性data-url生成div并将其传递给timezone-id url。 你的div应该是这样的。

<div class="time-rect-container" data-url="/timezones/<%= <timezone id> %>/give_time"></div>

使用Javascript:

$(document).ready(function () {
    setInterval(function () {
     time_div = $('.time-rect-container');
     time_div.load(time_div.data('url'));
}, 1000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM