我有一个 3x3 HTML 表格,每个元素存储一个单独的<canvas>
元素
表格中有一个单元格包含text
而不是 a<canvas>
当单击包含图像的单元格并且其右侧的单元格包含文本时,我正在尝试交换该单元格的画布与存储在相邻单元格中的文本。
每次单击单元格时,使用以下代码,画布元素都会消失并且只交换文本,使右侧的单元格不再包含文本,或者<canvas>
我尝试使用它访问画布("#blankCell").html()
但它不起作用..任何人都知道如何访问此内容以交换值?
我为此创建了一个简化的 jsFiddle:http: //jsfiddle.net/bobbyrne01/dbMnM/1/
$(function () {
var $tbl = $('<table border="1">').attr('id', 'grid');
var $tbody = $('<tbody>').attr('id', 'tableBody');
var tileCount = 0;
var rowCount = $("#numOfPieces").val();
for (var i = 0; i < rowCount; i++) {
var trow = $("<tr>").attr('id', 'row' + i); // New row
for (var j = 0; j < rowCount; j++) {
$cell.append(canvasArray[tileCount]); // Each data cell contains separate canvas element
$cell.appendTo(trow);
tileCount++;
}
trow.appendTo($tbody);
}
$tbl.append($tbody);
$('table').remove(); // removes previous table if it existed
$('body').append($tbl);
});
$('#grid tr:nth-child(2) td:last').prev().text("empty");
$('#grid tr:nth-child(2) td:last').prev().attr('id', 'blankCell');
听点击..
$('body').on('click', '#grid td', function(e) {
var $this = $(this);
if ($(this).closest('td').next("#blankCell").length){
blank = $(this).closest('td').next("#blankCell");
if (blank.length) {
//alert('blank to the right');
$this.before(blank);
}
$(this).attr('id', 'blankCell');
$(this).closest('td').next("#blankCell").attr('id', 'piece');
}
感谢任何帮助!
它现在只有文本,而不是使用画布元素进行交换。
目标是,如果用户选择旁边的单元格,blankCell
我想将该单元格与 交换blankCell
,如果用户选择不在旁边的单元格,blankCell
我不希望发生任何事情。
现在只关心左右检测。