javascript - 获取写入的节点

标签 javascript

我想获取写入时光标所在的节点

document.getElementById('parent').addEventListener('keypress', function(e) {

  console.log(e.target);
});
.root {
  padding-right: 1px;
}

#parent>div {
  border-color: yellow;
  float: left;
}
<div id="parent" contenteditable=true style="border: black 2px solid; height:200px">
  <div class="root" id="1">Qué</div>
  <div class="root" id="2">es</div>
  <div class="root" id="3">Lorem</div>
  <div class="root" id="4">Ipsum</div>
</div>

问题很复杂,因为我为每个单词使用一个 div。

我需要使用 div,以便您可以显示单词中的建议(我正在执行拼写检查)

enter image description here

最佳答案

您可以使用window.getSelection()获取光标下的实际节点:

document.getElementById('parent').addEventListener('keydown', event => {
  const actualTarget = window.getSelection().anchorNode.parentNode;
  console.log(actualTarget);
});
.root {
  padding-right: 1px;
}

#parent>div {
  border-color: yellow;
  float: left;
}
<div id="parent" contenteditable="true" style="border: black 2px solid; height:200px">
  <div class="root" id="1">Qué</div>
  <div class="root" id="2">es</div>
  <div class="root" id="3">Lorem</div>
  <div class="root" id="4">Ipsum</div>
</div>

关于javascript - 获取写入的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51111395/

相关文章:

javascript - webpack-dev-server sockjs 错误的 url

javascript - redux 如何与 next.js 配合使用?

javascript - 我的代码有什么问题吗? (编码器字节大写字母)

javascript - UI-路由器。如何导航到项目中我不想包含为状态的页面?

javascript - 如何更新这个 Reactjs 选择

javascript - Angular 保护功能

javascript - Angular 2 : external js file variables are accessible from component

javascript - 加载项目中的json文件到app.js

javascript - Safari window.open() 不起作用

javascript - 用其他子域替换子域名使用 JavaScript?