Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中遍历一个表并相互交换指定的单元格?_Javascript_Html_Css - Fatal编程技术网

如何在Javascript中遍历一个表并相互交换指定的单元格?

如何在Javascript中遍历一个表并相互交换指定的单元格?,javascript,html,css,Javascript,Html,Css,我有一个id为“mytable”的表,还有一个构建4x4表的for循环,给每个单元格一个从0到15的id,并将innerHTML设置为相同的数字。一旦单元格留空,因为这将是一个滑动益智游戏的一部分,用户按下一个按钮将表格中的单元格置乱,然后通过将单元格位置移动到该空白区域来解决该问题。我目前的问题是,我似乎无法实现一个有效的洗牌功能。下面是我构建一个表并将其洗牌的代码。有关错误消息,请参见注释 function buildTable(){//need to build it with every

我有一个id为“mytable”的表,还有一个构建4x4表的for循环,给每个单元格一个从0到15的id,并将innerHTML设置为相同的数字。一旦单元格留空,因为这将是一个滑动益智游戏的一部分,用户按下一个按钮将表格中的单元格置乱,然后通过将单元格位置移动到该空白区域来解决该问题。我目前的问题是,我似乎无法实现一个有效的洗牌功能。下面是我构建一个表并将其洗牌的代码。有关错误消息,请参见注释

function buildTable(){//need to build it with every cell being named
    var tablelocation = document.getElementById('mytable'); 
    var table = document.createElement('table');
    table.id="newtable";
    for(var i = 0; i<tableSize; i++){
        var tableRow = table.insertRow();
        for(var j = 0; j<tableSize; j++){
            var arrTmp = (tableSize*tableSize-1)-(i*tableSize+j);
            var cell = tableRow.insertCell();
            cell.id = arrTmp;       
            if(arrTmp==15){
                cell.className = "empty_cell";
            else{
                cell.className = "cell";    
                cell.appendChild(document.createTextNode(arrTmp));
            }

        }
    }

    tablelocation.appendChild(table);
}
function buildTable(){//需要使用命名的每个单元格来构建它
var tablelocation=document.getElementById('mytable');
var table=document.createElement('table');
table.id=“newtable”;

对于(var i=0;i为什么不从左上到右下循环并相应地递增
i
?使用
console.debug()
打印
table.cells
,查看发生了什么。我这样做了,它给了我16个“未定义”的实例-对不起,我对js有点陌生,我对调试技术不是很熟悉。如果你查看shuffleTable函数,你会看到一条注释,上面写着“此处失败,未定义不是对象错误。”根据我的调试器,这就是代码失败的地方。只是一个警告。一个
不适合可视化滑动拼图,因为“滑动”行与行之间的
s比必要的麻烦更多。尝试使用4x4格的定位
元素。好吧,我发现我的部分问题是我使用的表格……不太适合这个目的。该项目是一项作业,教授拒绝就此事提供意见或建议。这不是一个理想的地点但是我想这就是stackoverflow的用途。我成功地让解决方案在我这端工作,但我将对它重新编码,用定位的div元素替换表。
function shuffleTable(){//need to build it with every cell being named


    var table = document.getElementById("newtable");
    for (var i = 0; i<tableArray.length; i++) {
        var tmp = tableArray[i];//array of shuffled ID values
        var tmp2 = objectCellArray[tmp];
        objectCellArrayShuffled.push(tmp2);
    }
    for (var j = 0; j<tableArray.length; j++){
        var cell = table.cells[j];//fails here with undefined is not an object error
        cell = objectCellArrayShuffled[j];
    }
}