将javascript数组解析为具有相同类名的适当输入字段

将javascript数组解析为具有相同类名的适当输入字段,javascript,php,jquery,html,Javascript,Php,Jquery,Html,实际上,我正在使用一个函数来比较两个日期(一个是从隐藏输入中获取的日期,另一个是当前日期时间)。 我用JS编写了一个功能,效果非常好: var elements = document.getElementsByClassName("getTime"); var names = []; for(var i=0; i<elements.length; i++) { names = elements[i].value;

实际上,我正在使用一个函数来比较两个日期(一个是从隐藏输入中获取的日期,另一个是当前日期时间)。 我用JS编写了一个功能,效果非常好:

var elements = document.getElementsByClassName("getTime");

        var names = [];
        for(var i=0; i<elements.length; i++) {
            names = elements[i].value;
            var dece = moment(names).format();
            var cureTime = moment().format();
            seco=moment().diff(dece, 'seconds');
            if ((Math.floor(seco / 60)) >= 1 && (Math.floor(seco / 60))<60) {
                console.log(Math.floor(seco / 60) + " minutes");
                document.getElementsByClassName("time").innerHTML = Math.floor(seco / 60) + " minutes ago";
            }else if(((Math.floor(seco / 3600)) >= 1) && ((Math.floor(seco / 3600))<24))
            {
                console.log(Math.floor(seco / 3600) + " hours");
                document.getElementsByClassName("time").innerHTML = Math.floor(seco / 3600) + " hours ago";
            }else if (((Math.floor(seco / 86400)) >= 1) && ((Math.floor(seco / 86400)) <30))
            {
                console.log(Math.floor(seco / 86400) + " days");
                document.getElementsByClassName("time").innerHTML = Math.floor(seco / 86400) + " days ago";
            }else if (((Math.floor(seco / 2592000)) > 1) && ((Math.floor(seco / 2592000)) <= 12))
            {
                console.log(Math.floor(seco / 2592000) + " months");
                document.getElementsByClassName("time").innerHTML = Math.floor(seco / 2592000) + " months ago";
            }else if((Math.floor(seco / 31536000)) > 1)
            {
                console.log(Math.floor(seco / 31536000) + " years");
                document.getElementsByClassName("time").innerHTML = Math.floor(seco / 31536000) + " years ago";
            }
        }
var elements=document.getElementsByClassName(“getTime”);
变量名称=[];
对于(var i=0;i=1&&(数学层(seco/60))=1&&((数学层(seco/3600))=1&&((数学层(seco/86400))1&((数学层(seco/2592000))1)
{
控制台日志(数学地板(seco/31536000)+“年”);
document.getElementsByClassName(“time”).innerHTML=Math.floor(seco/31536000)+“几年前”;
}
}
因此,所有这些console.log(在每个if语句中)都会返回正确的日期差。 但现在我不明白如何将所有这些差异解析为具有相同类名的适当的span字段。我的HTML如下所示:

@foreach($repoData as $kek)
     <span class="time" id="openedOn"></span>
    <input type="hidden" class="getTime" id="time" value='{!! $kek->created_at !!}'>
@endforeach
@foreach($repoData为$kek)
@endforeach
为了清楚起见,这个FOREACH生成了几个日期,这些日期存储在隐藏的输入中。然后我从这个隐藏的输入中获取值,并将它们传递给JS中的函数。 所以我不明白我应该如何将JS函数中的元素解析到类名为“time”的跨度中。
请提供帮助。

getElementsByClassName
函数返回一个数组(阅读更多内容),因此需要使用数组表示法来访问其元素

document.getElementsByClassName("time")[0].innerHTML
在您的情况下,由于您要访问循环中的元素,因此只需使用计数器(
i


将以上内容替换为它工作的所有条件。

getElementsByClassName返回HTML集合,而不是单个元素。
getElements
(复数)返回数组。您需要执行
document.getElementsByClassName(“time”)[0].innerHTML
Wow。谢谢@NikhilNanjappa,我用一个document.getElementsByClassName(“time”)[I].innerHTML重写了我的代码,它现在可以工作了。干得好不要在循环中使用
[0]
,只需使用计数器(
i
)。
document.getElementsByClassName("time")[i].innerHTML