显示选择选项文本日期
显示选择选项文本日期
我有一个选择选项下拉框,只显示星期一(选择特定的一周)。\n
\n我想获取选项文本(即Mon 1/7/2013 (Week 02)),并将其用于在表格中显示该周的日期:\n
Mon 1/7/2013 (Week 02) | Tue 1/8/2013 (Week 02) | Wed 1/9/2013 (Week 02)...
\n当选择选项改变时,我希望中的日期也随之改变。目前我拥有的JavaScript代码(它不起作用)是:\n
\n这个能实现吗,还是我在白费力气?\n更新 - 解决方案\n正如建议的那样,我过度使用了引号,所以我去掉了它们。同样,如建议的那样,日期需要进行格式化,因为第一次尝试只提供了时间戳。使用这个日期格式化解决方案,我能够将日期格式化为人类可读的形式。\n完整可运行的JavaScript代码:\n
\n此外,注意我最初设置日期时存在错误,星期一+0,星期二+1,星期三+2,等等(我没有注意到,因为我得到的只是时间戳)。这似乎确实设置了日期,所以星期一和星期二显示正确,但是星期三显示了星期四的日期,星期四显示了星期日的日期,以此类推。通过每次增加+1来解决了这个问题。
问题原因:使用JavaScript获取日期格式时可能会出现问题。
解决方法:参考以下链接中的帖子,可以解决这个问题:Javascript get date in format
文章整理如下:
在JavaScript中获取日期格式时可能会遇到一些问题。tymeJV已经给出了答案,但我认为你可能会遇到一些麻烦。我建议参考以下链接中的帖子,可以解决这个问题:Javascript get date in format。
问题的原因是代码中存在大量不必要的引号,导致代码出错。解决方法是删除这些引号。
下面是修复后的代码:
$("#monday").click(function(){ var sel = document.getElementById("monday"); var text = sel.options[sel.selectedIndex].text; var mon=new Date(text); console.log(mon); document.getElementById("mondaydate").innerHTML = mon.setDate(mon.getDate()+0); });
可以在这里找到修复后的示例代码:[http://jsfiddle.net/bnWRU/1/](http://jsfiddle.net/bnWRU/1/)
问题原因:在代码中,变量text被放在引号中,导致它只会显示引号中的内容而不执行任何逻辑。
解决方法:去掉变量周围的引号,使其执行逻辑。同时,对于后续的代码也要去掉引号。
var sel = document.getElementById("monday"); var text = sel.options[sel.selectedIndex].text; var mon = new Date(text); document.getElementById("mondaydate").innerHTML = mon.setDate(mon.getDate() + 0); document.getElementById("tuesdaydate").innerHTML = mon.setDate(mon.getDate() + 1); document.getElementById("wednesdaydate").innerHTML = mon.setDate(mon.getDate() + 2); document.getElementById("thursdaydate").innerHTML = mon.setDate(mon.getDate() + 3); document.getElementById("fridaydate").innerHTML = mon.setDate(mon.getDate() + 4); document.getElementById("saturdaydate").innerHTML = mon.setDate(mon.getDate() + 5); document.getElementById("sundaydate").innerHTML = mon.setDate(mon.getDate() + 6);
在这个代码中,变量text被正确地赋值,并且后续的代码也不再包含引号,因此可以正常执行逻辑。