javascript - 发生模糊事件时如何更改节点?

标签 javascript events blur

源 HTML 结构。

<table>
    <tr>
        <td>class</td>
        <td><input type="text" id="data1"></td>
    </tr>
    <tr>
        <td>name</td>
        <td><input type="text" id="data2"></td>
    </tr>
</table>

事件:在input中输入test1(其id)后,源HTML结构变成目标HTML结构data1 并且鼠标焦点离开输入。

目标 HTML 结构。

<table>
    <tr>
        <td>class</td>
        <td>test1</td>
    </tr>
    <tr>
        <td>name</td>
        <td><input type="text" id="data2"></td>
    </tr>
</table>

这是我的 JS。

function  changeNode(event){
    ob =document.activeElement;
    _str = ob.value;
    ob.parentNode.removeChild(ob);
    ob.parentNode.innerText = _str;    
} 
document.addEventListener("blur",changeNode,true);

为什么我的JS达不到我的预期目标?
如何解决?

最佳答案

您正在选择事件元素,而事件是对象的焦点丢失。 您应该选择 event.target 作为 ob,您的代码应该可以工作:

另外:您不需要删除该对象,您可以覆盖所有内部文本,以便该对象被自动删除。

    function  changeNode(event){
        ob = event.target;
        _str = ob.value;
        ob.parentNode.innerText = _str;    
    } 
    document.addEventListener("blur",changeNode,true);
<table> 
  <tr> 
    <td>class</td> 
    <td><input type="text" id="data1"></td> 
  </tr> 
  <tr>
   <td>name</td>
   <td><input type="text" id="data2"></td> 
  </tr> 
 </table>

关于javascript - 发生模糊事件时如何更改节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52720913/

相关文章:

javascript - jQuery,添加多个表行无法正常工作

javascript - 如何确保绑定(bind)到 hashChange 事件不冒泡?

java - Java 中的事件引发处理

android - 如何在android中找到给定的位图图像是模糊图像还是未模糊图像

python - 如何使用 opencv (python/c++) 从图像中去除模糊

ios - 我可以检测 iPhone 是否启用了模糊功能吗?

javascript - 当用户按下 jquery 中的按钮时添加更多输入字段

javascript - 范围 slider 输入事件未在 IE 10 中触发

javascript - 通过php函数增加HTML表格行

php - 如何在 magento 结帐过程之前设置自定义总计?