将字符串分成几个相等的子串

时间:2016-04-20 10:29:23

标签: javascript

这是一个代码,用于查找1月1日星期一的年份

for (var i = 2014; i < 2050; i++)  {
    var d = new Date(i, 1, 1).getDay();
    if (d === 1) {
      console.log("The year "+ i +" Jan the 1st is Monday");
    }
}

我有一个字符串,其中每四个数字代表一年。 有没有办法将此字符串拆分为多个字符串并将每个字符串分配给变量? 这样:

document.getElementById('congrats').innerHTML = "The year "+ i +" Jan the 1st is Monday"

它在控制台中完美运行,但如果我尝试:

select 
    puser_id, 
    puser_name, 
    plast_login_time, 
    case plicense_level
        when '1' then 'Потребитель'
        else 'Автор'
    end as plicense_level
from dbo.PPOM_USER
order by plast_login_time

仅显示最后一个结果。不是每个人。

3 个答案:

答案 0 :(得分:2)

document.getElementById('congrats').innerHTML = "The year "+ i +" Jan the 1st is Monday"

你的问题是你在每个循环上替换innerHTML值,所以很明显只会显示最后的结果,因为它没有被替换。

document.getElementById('congrats').innerHTML += "The year "+ i +" Jan the 1st is Monday\n"

你可以这样做来连接innerHTML,假设使用的HTML元素是pre tag。

Example

答案 1 :(得分:1)

document.getElementById('congrats').innerHTML = "The year "+ i +" Jan the 1st is Monday"

这只显示最后的结果,因为在for循环的每次迭代中,innerHTML的内容都被替换。

更好的解决方案是使用insertAdjacentHTML而不是innerHTML

innerHTML不同,insertAdjacentHTML每次都不像innerHTML那样重新分析整个HTML。这使insertAdjacentHTMLinnerHTML快得多:

&#13;
&#13;
 for (var i = 2014; i < 2050; i++) {
   var d = new Date(i, 0, 1).getDay();
   if (d === 1) {
      document.body.insertAdjacentHTML('beforeend', "The year "+ i +" Jan the 1st is Monday<br>")

   }
 }
&#13;
&#13;
&#13;

答案 2 :(得分:0)

document.getElementById(&#39;恭喜&#39;)。innerHTML =&#34;年份&#34; + i +&#34; 1月1日是星期一&#34;

表示它会覆盖旧代码,因此您可以使用以下行

代替此行

document.getElementById(&#39;恭喜&#39;)。innerHTML + =&#34;年份&#34; + i +&#34; 1月1日是星期一&#34;