javascript focus() 方法更改值

javascript focus() method change value

我想让单元格的行为像 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() 方法不会对元素的值进行任何更改。

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