Javascript 根据HTML中的选项标记,以不同语言显示一周中的日期

Javascript 根据HTML中的选项标记,以不同语言显示一周中的日期,javascript,html,Javascript,Html,我试图用HTML显示一周中的天数,根据选择的语言选项,用不同的语言显示,然后按下“计算”按钮,应该在标签标签的右侧显示天数。但这并不是完全按照计划进行的 在网上查了好一阵子,找到了一些对我有帮助的东西,但不完全是100% <form style="margin-bottom: 30px;"> <label>Select language:</label> <select class="lang"> <option

我试图用HTML显示一周中的天数,根据选择的语言选项,用不同的语言显示,然后按下“计算”按钮,应该在标签标签的右侧显示天数。但这并不是完全按照计划进行的

在网上查了好一阵子,找到了一些对我有帮助的东西,但不完全是100%

<form style="margin-bottom: 30px;">
    <label>Select language:</label>
    <select class="lang">
       <option value="en">En</option>
       <option value="ro">Ro</option>
       <option value="fr">Fr</option>
    </select>
    <label class="showDays"></label>
    <br>
    <button type="button" onClick="displayLang()">Compute</button>
    <button type="reset" onClick="resetLang()">Reset</button>
</form>



window.displayLang = function()  {

    let date = new Date();
    date.setDate(date.getDate() + 7);
    let days = date.getDay();

    let week = [];

    let lang = document.getElementsByClassName("lang")[0].value;
    let allDays = document.getElementsByClassName("showDays");

    if(lang[0].value = "en")    {

        week.push(days);

        allDays[0].innerHTML = week;

    }

    if(lang[0].value = "ro")  {

        week.splice(0, 0, "Luni", "Marti", "Miercuri", "Joi", "Vineri", "Sambata", "Duminica");

        allDays[0].innerHTML = week;

    }

    if(lang[0].value = "fr")    {

        week.splice(0, 0, "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche");

        allDays[0].innerHTML = week;

    }

}

window.resetLang = function()    {
    document.getElementsByClassName("showDays")[0].innerHTML = "";
}

选择语言:
EN
反渗透
Fr

计算 重置 window.displayLang=函数(){ 让日期=新日期(); date.setDate(date.getDate()+7); 让days=date.getDay(); 每周=[]; 让lang=document.getElementsByClassName(“lang”)[0].value; 让allDays=document.getElementsByClassName(“showDays”); if(lang[0].value=“en”){ 周。推送(天); allDays[0]。innerHTML=周; } if(lang[0].value=“ro”){ 周拼接(0,0,“Luni”,“Marti”,“Miercuri”,“Joi”,“Vineri”,“Sambata”,“Duminica”); allDays[0]。innerHTML=周; } if(lang[0].value=“fr”){ 周。拼接(0,0,“Lundi”,“Mardi”,“Mercredi”,“Jeudi”,“Vendredi”,“Samedi”,“Dimanche”); allDays[0]。innerHTML=周; } } window.resetLang=函数(){ document.getElementsByClassName(“showDays”)[0].innerHTML=“”; }
显然,如果我选择“En”选项,日期应该用英语显示,如果我选择“Ro”选项,日期应该用罗马尼亚语显示,如果我选择“Fr”选项,日期应该用法语显示。相反,我现在得到的是:伦迪、马尔迪、美塞雷迪、朱迪、文德雷迪、萨梅迪、迪曼奇、伦尼、马蒂、米尔克里、乔伊、维尼里、桑巴塔、杜米尼卡、3///// 我只是不明白“3”是从哪里来的。。。我不是在追求数字!显然,我也可以用JavaScript中的开关盒解决这个问题。。。我只是不知道我怎么能做到

  • 在条件
    if
    中,必须使用双等于而不是一等于
  • 您还需要添加
    else
    语句

  • 您需要将
    lang[0]。值改为
    lang

  • window.displayLang=function(){
    让日期=新日期();
    date.setDate(date.getDate()+7);
    让days=date.getDay();
    每周=[];
    让lang=document.getElementsByClassName(“lang”)[0].value;
    让allDays=document.getElementsByClassName(“showDays”);
    如果(lang==“en”){
    周=[“星期一”、“星期二”、“星期四”、“星期三”、“星期五”、“星期六”、“星期日]。加入(“,”);
    allDays[0]。innerHTML=周;
    }else if(lang==“ro”){
    周=[“Luni”、“Marti”、“Miercuri”、“Joi”、“Vineri”、“Sambata”、“Duminica”]。加入(“,”);
    allDays[0]。innerHTML=周;
    }else if(lang==“fr”){
    week=[“Lundi”、“Mardi”、“Mercredi”、“Jeudi”、“Vendredi”、“Samedi”、“Dimanche”]。加入(“,”);
    allDays[0]。innerHTML=周;
    }
    }
    window.resetLang=函数(){
    document.getElementsByClassName(“showDays”)[0].innerHTML=“”;
    }
    
    选择语言:
    EN
    反渗透
    Fr
    

    计算 重置
    let days=date.getDay()
    会将
    设置为一个数字,这就是为什么您的output@messerbill如何使用:let days=date.getDay()以英语显示一周中的几天;方法,或任何其他JavaScript内置方法??请看这里:但我建议您使用
    moment.js
    ,它是一个比本机
    Date API
    更好的日期处理库。好吧,它正在按预期工作。。。但是我只得到了“3”,而不是英语中的“天”。。。我想:让日期=新日期();date.setDate(date.getDate()+7);让days=date.getDay();应该显示:星期一,星期二,星期三,星期四,星期五,星期六,星期天。。。或者至少:上午、周二、周三、周四、周五、周六、周日……:(…我认为:让date=new date();date.setDate(date.getDate()+7);让days=date.getDay();应该显示:星期一、星期二、星期三、星期四、星期五、星期六、星期天……或者至少显示:Mo、Tue、Wed、Thu、Fri、Sat、Sun……(你为什么这么认为?!)
    getDay()
    方法返回一周中的某一天(从0到6)对于指定的日期。如何在数组中的每个元素后添加一个空格键?例如:星期一、星期二、星期三、星期四、星期五、星期六、星期天,而不是:星期一、星期二、星期三、星期四、星期五、星期六、星期天。很高兴能为您提供帮助。