循环模式的Javascript嵌套

循环模式的Javascript嵌套,javascript,Javascript,我试图使用javascript for loop创建一个X或加号(+)模式,但没有成功。 这是我的密码 function drawCross(){ var inputVal = document.getElementById("input").value; if (inputVal % 2 === 0) { // checks if the user's entered value is even document.getElementById("output")

我试图使用javascript for loop创建一个X或加号(+)模式,但没有成功。 这是我的密码

function drawCross(){
    var inputVal = document.getElementById("input").value;
    if (inputVal % 2 === 0) { // checks if the user's entered value is even
        document.getElementById("output").innerHTML = "";

        for (var row = 0; row < inputVal; row++) {
            for (var col = 0; col < inputVal; col++) {

                if (row == col + 3 ||  row == parseInt(inputVal / 1)) 
                    document.getElementById("output").innerHTML += "O";
                else
                    document.getElementById("output").innerHTML += "..";
            }
            document.getElementById("output").innerHTML += "<br/>";
        }
    }
}
函数drawCross(){
var inputVal=document.getElementById(“输入”).value;
if(inputVal%2==0){//检查用户输入的值是否为偶数
document.getElementById(“输出”).innerHTML=“”;
对于(变量行=0;行”;
}
}
}
这是我试图达到的最终结果

几个问题:

  • 确保输出元素使用单空格字体。例如,您可以为此使用
    pre
    元素。这样你就不必加倍积分就能得到仍然不完美的东西

  • 输入的数字应该是奇数,而不是偶数。否则,您没有中间的列/行

  • 第二条对角线的公式与您的不一样(除以1没有多大意义)。使用
    row==+inputVal-col-1

除此之外,还要尽量减少与DOM的交互:只在拥有最终HTML字符串时更新它

代码如下:

函数drawCross(){
var inputVal=+document.getElementById(“输入”).value;
var html=“”;
if(inputVal%2==1){//检查用户输入的值是否为奇数
对于(变量行=0;行”;
}
document.getElementById(“输出”).innerHTML=html;
}
}
输入奇数:
去

什么不起作用?你能发布一个JSFIDLE吗?你的更新只是显示你想要发生什么,而不是发生了什么和问题是什么。你一定要把这个答案放在你的个人资料上呵呵