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

时间:2017-06-19 15:01:55

标签: javascript php jquery html

实际上我正在开发一个比较两个日期的函数(我从隐藏输入获得的一个日期,另一个日期 - 当前日期时间)。 我在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";
            }
        }

因此,所有这些console.logs(在每个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会生成几个存储在隐藏输入中的日期。然后我从这个隐藏的输入中获取值并将它们传递给我在JS中的函数。 所以我无法理解我应该如何将JS函数中的元素解析为具有类名称 - “time”的跨度。 请帮忙。

1 个答案:

答案 0 :(得分:1)

getElementsByClassName函数返回一个数组(阅读更多here)因此你需要使用数组表示法来访问它的元素

document.getElementsByClassName("time")[0].innerHTML

在您的情况下,由于您访问循环中的元素,您应该只使用计数器(i)。

document.getElementsByClassName("time")[i].innerHTML

将上述内容替换为其工作的所有条件。