0

我是 JS 的新手,有一个简单的问题,我怎样才能让我的代码在下面返回月份名称,在这种情况下是 12 月?

谢谢你。

window.onload = function() {
    var monthName = getMonth(12);   
    document.getElementById("months").innerHTML = getMonth(month);
};

function getMonth(month) {
    var monthName;
    if (month === 12) {
}
    return monthName;
}

http://jsfiddle.net/priswiz/kU8Js/

4

5 回答 5

3
function getMonth(monthNumber) {
    var monthNames = [ "January", "February", "March", "April", "May", "June",
    "July", "August", "September", "October", "November", "December" ];

    return monthNames[monthNumber-1];
}
于 2013-03-15T21:54:44.357 回答
2

一些东西:

  • 您永远不会将monthName变量设置为等于getMonth函数中的任何内容。
  • 你的逻辑onload有点古怪。
  • 你需要你div有一个“月”的ID,而不是一个班级。

这里是基于您的 JSFiddle 的代码的工作版本:http: //jsfiddle.net/kU8Js/2/

window.onload = function() {
    document.getElementById("months").innerHTML = getMonth(12);   
};

function getMonth(month) {
    var monthName;
    if (month === 12) {
        monthName = "December";
    }
    return monthName;
}

话虽如此,Ellochka Cannibal 有一个更好的方法来做到这一点。但是你去。

于 2013-03-15T21:54:26.433 回答
1

您应该定义一个月份数组,然后将其用作月份编号和名称之间的映射。

var months = new Array( "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
window.onload = function() {
     var monthName = getMonth(12);  

$(".months").html(monthName)   ;
};

function getMonth(monthNo) {

return months[monthNo-1];  //the array start with 0 and month no. start with 1
}

他是一个正在运行的解决方案

于 2013-03-15T22:02:06.093 回答
0

我会将名称存储在地图中以便快速查找,您可以轻松扩展它:

var getMonth = function (num) {
    var m = {
        0: 'Jan', 1: 'Feb', 2: 'Mar',
        3: 'Apr', 4: 'May', 5: 'Jun',
        6: 'Jul', 7: 'Aug', 8: 'Sep',
        9: 'Oct', 10: 'Nov', 11: 'Dec'
    }
    return m[num];
}

顺便说一句,这是您更正的 jsfiddle:http: //jsfiddle.net/kU8Js/4/。您不能将 getElementById 与类一起使用。

于 2013-03-15T22:18:50.640 回答
0

这里有很多答案,所以为什么不去:D

以下内容应该会阻止您在months每次调用函数时重新创建数组,并将其(月数组)保留在全局名称空间之外。

var monthName = (function() { 
  var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
  return function(month) { 
    return months[month-1]; 
  }
})();
于 2013-03-15T22:49:39.717 回答