我想使单元格行为像在Excel中一样。如果单击单元格并且单元格的属性expression不为空,我想将此表达式的值放入单元格中,并专注于此单元格。

码:

// In this point tdElm.innerHTML = 1
    if (tdElm.getAttribute('expression') != "") {
        tdElm.innerHTML = tdElm.getAttribute('expression'); //expression = '=1'
        tdElm.setAttribute('contenteditable', 'true');
        tdElm.classList.add('focused');
        console.log(tdElm.innerHTML); //print =1
        tdElm.focus();
        console.log(tdElm.innerHTML); //print 1
        return;
    }


我的问题:

为什么调用innerHTML方法后,单元格的focus()值又变回原样?如何解决这种奇怪的行为?我需要纯JavaScript解决方案。

谢谢你的帮助。

最佳答案

focus()方法不会对元素的值进行任何更改。

我认为您可以检查为该元素创建的焦点事件处理程序。

09-19 11:42