我可能在这里遗漏了一些简单的东西,但我遇到了jquery ui datepicker的问题。看起来它只是返回一个通用的Object而不是Date对象,这不是我所期望的。这是代码:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<link type="text/css" href="jquery_ui/css/custom-theme/jquery-ui-1.8.14.custom.css" rel="stylesheet" />
<script type="text/javascript" src="jquery_ui/js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="jquery_ui/js/jquery-ui-1.8.16.custom.min.js"></script>
<script type="text/javascript">
Date.prototype.addHours= function(h){
this.setHours(this.getHours()+h);
return this;
}
$(function() {
$( "#startdatetime" ).datepicker(
{
onSelect: function(dateText, inst) {
sd = $( "startdatetime" ).datepicker( 'getDate' );
sd.addHours(10);
}
});
});
</script>
</head>
<body >
<input id="startdatetime" type="text">
</body>
</html>
我得到的例外是“sd.addHours不是函数”,并且使用firebug看起来getDate给了我错误的对象(不是Date)。
我对javascript或jquery不是很熟悉,有谁知道为什么会这样?
答案 0 :(得分:4)
你错过了内部jquery表达式中的井号。在任何情况下,您实际上都不需要再次找到对象,因为实例作为inst。
传递给函数答案 1 :(得分:1)
addHour原生JavaScript Date类中有方法(参见http://www.w3schools.com/jsref/jsref_obj_date.asp)。
您可以做的是以下代码:
Date.prototype.addHours = function(amount) {
return new Date(this.getTime() + (amount * 60 * 60 * 1000));
}
$("#datepicker").datepicker("getDate").addHours(10);