for (var j = 0; j < 26; j++) { var tdElement = document.createElement('td') // 加入文本 var textareaElement = document.createElement('textarea') textareaElement.setAttribute('rows', '1') textareaElement.setAttribute('readonly', 'readonly') tdElement.appendChild(textareaElement)
trElement.appendChild(tdElement) }
再往下,我们将完成单击时,改变所在行标题的颜色设置
1 2 3 4
var target = event.target var trElement = tdElement.parentNode var thElement = trElement.firstChild thElement.style.backgroundColor = '#d9d9dd'
设置列标题的颜色变化
1 2 3 4 5 6 7 8 9 10 11
// 当前的<td>元素是<tr>元素的第几个子元素 var tdElements = trElement.childNodes // 将tdElements转化为数组 var arr = Array.prototype.slice.call(tdElements) // 获取当前点击的单元格所在列的索引 var index = arr.indexOf(tdElement) console.log(index) var headTrElement = table.getElementsByTagName('tr')[0] var headThElements = headTrElement.getElementsByTagName('th') var targetThElement = headThElements.item(index) targetThElement.style.backgroundColor = '#d9d9dd'
最后实现的就是双击可以输入文字
1 2 3 4 5 6 7 8 9 10
focusTdElement.ondblclick = function () { var target = event.target var textareaElement if (target.nodeName === 'TEXTAREA') { textareaElement = target } elseif (target.nodeName === 'TD') { textareaElement = target.firstChild } textareaElement.removeAttribute('readonly') }