jQuery \ JavaScript - 无法更新元素

时间:2015-05-07 09:47:25

标签: javascript jquery html

这是非常基本的东西,但我无法弄清楚这一点。我正在使用jQuery的DatePicker。我的目标是显示一些包含所选日期的文本。如果用户选择了今天的日期,我将文本更改为too late。当用户重新选择将来的日期时,我想将div的文字设置为某个内容,并将所选日期添加到位于此span内的div内。除未来日期外的所有作品均未显示。为什么呢?
改变某些元素的内容时,最佳做法是什么?我可以使用jQuery s remove然后使用append吗?

HTML:

<p>Date: <input id="datepicker" type="text"></p>
<p id="we_will_start">starting at: <span id="start_date"></span></p>

JQUERY:

$('#datepicker').datepicker({
    onSelect: function(dateText, inst){ 
    var dateAsString = dateText;
    var selectedDateAsObject = $(this).datepicker('getDate');
    console.log("date object=" + new Date+ " jquery date=" + selectedDateAsObject);
    console.log(dateAsString);
    if(selectedDateAsObject < new Date){
        console.log("bad date. cant start yesterday fool");
         $("#we_will_start").text("too late!");
    }else{
        $("#we_will_start").text("will start at ");
         document.getElementById("start_date").innerHTML = dateAsString;
        }
    }
});

fiddle

1 个答案:

答案 0 :(得分:1)

试试这个,只需在文本中连接日期字符串。

$('#datepicker').datepicker({
    onSelect: function(dateText, inst){ 
    var dateAsString = dateText;
    var selectedDateAsObject = $(this).datepicker('getDate');
    console.log("date object=" + new Date+ " jquery date=" + selectedDateAsObject);
    console.log(dateAsString);
    if(selectedDateAsObject < new Date){
        console.log("bad date. cant start yesterday fool");
         $("#we_will_start").text("too late!");
    }else{
        $("#we_will_start").text("will start at " + dateAsString);
        }
    }
});

对于跨度,将文本更改为&#34;太晚了&#34;你覆盖了段落中的所有元素。