2013-07-18 53 views
1

我正在使用Jquery的datepicker插件(它工作正常)。然后我需要从采摘日期中提取“星期几”。foo.substr给出“不是函数”错误

当使用foo.substring(0,3)来指定datepicker('getDate')的前三个字符时,我得到:TypeError foo.substr is not a function

$(function() { 
    $("#textDatepicker").datepicker(); 
}); 

function selectedDay() { 
    var foo = $("#textDatepicker").datepicker('getDate'); 

    //IF USED.... alert(foo); 
    //retuens (for example)..... 
    //"Thu Jul 18 00:00:00 GMT-0400 (Eastern Standard Time)" 

    var weekday = foo.substr(0, 3) 
    document.getElementById("dayofweek").innerHTML = "The day of the week selected is: " + weekday; 
} 

<head> 
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> 
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 
<script src="https://jquery-blog-js.googlecode.com/files/SetCase.js" type="text/javascript"></script> 
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css"/> 
</head> 
<body> 
Select Date:&nbsp;<input type="text" id="textDatepicker" onchange="selectedDay();"> 
<br><br> 
<span id="dayofweek">Selected day of week replaces this</span> 
</body> 

我也贴在:jsfiddle

任何帮助,将不胜感激。在此先感谢...

+2

为什么你同时加载的jQuery 1.9.1和1.10之前称为toString();方法。 2(latest.min.js)? – Sergio

+0

你是否100%确定它是一个字符串,但不是一个对象,你试图取得子串? – Jonast92

+0

我的猜测是.substr只能用于字符串,而您正在尝试使用jQuery对象。 –

回答

6
var foo = $("#textDatepicker").datepicker('getDate'); 

返回Date对象,而不是一个字符串,并且没有方法substr()

FIDDLE

您可以通过消除难看的内嵌事件处理程序,这样做解决这个问题:

$("#textDatepicker").datepicker({ 
    onSelect: function() { 
     var date = $(this).datepicker('getDate'); 
     var day = $.datepicker.formatDate('DD', date); 
     $('#dayofweek').html(day); 
    } 
}); 

FIDDLE

+2

'foo.toString()。substr(0,3);'会做到这一点。 –

+0

@SheikhHeera - 这太棒了,但是将日期对象串起来并从字符串中提取东西并不是真正的使用日期对象的正确方法! – adeneo

1
$("#textDatepicker").datepicker('getDate'); 

是一个对象。你不能用substr获取对象的子串。

6

使用

var weekday = foo.toString().substr(0, 3); 

DEMO.

+1

清脆透明 –

0

foo.substr(0,3)是罪魁祸首。它返回一个日期对象,你可以在日期对象上做substr。 您可以通过使用代码修正下方

function selectedDay() { 
    var foo = $("#textDatepicker").datepicker('getDate'); 

    //IF USED.... alert(foo); 
    //retuens (for example)..... 
    //"Thu Jul 18 00:00:00 GMT-0400 (Eastern Standard Time)" 

    var weekday = foo.getDay(); 
    document.getElementById("dayofweek").innerHTML = "The day of the week selected is: " + weekday; 
} 

0

问题调用subString();foo.toString().subString(start,length); 为我工作