JavaScript将输入属性拆分为数组和输出

时间:2014-12-13 04:26:25

标签: javascript jquery

Codepen Link

JSFiddle Link

目标:

使用输入字段中的拆分年 - 月 - 日创建动态刷新输出。

说明

不要注意第40行注释上方CodePen的任何代码;

我得到了一个输入。每当用户使用初始化的datepicker选择日期时,输入将获得data-date格式为YYYY-mm-dd的属性。好的,完美的。

我想根据此data-date属性为div创建输出。

所以我写了下面的代码:

function summaryOutput() {
    var output       = $( '#output' );
    var end          = $( '#end' );

    end.on('change', function() {
        var endString    = end.attr('data-date');
        var endSplit     = endString.split('-');
        var year         = endSplit[0];
        var month        = endSplit[1];
        var day          = endSplit[2];

        output.text(year);
    });

}

这很简单。

未在codepen中调用此函数

调用它并尝试选择日期并查看错误:

Uncaught TypeError: Cannot read property 'split' of undefined

而且,data-date属性不再适用。

更令人困惑的是,它在控制台中运行。我的意思是,如果你在datepicker中选择一个日期,然后逐步初始化所有变量,然后,例如,看看month变量中的内容,你就会得到结果。

但它不再适用于真实文件。

所以,我错在哪里?

1 个答案:

答案 0 :(得分:2)

您需要在输入标记中添加data-date属性。

将输入标记更改为:

<input type="text" id="end" data-date="">