在可满足的情况下找到光标目标元素ID



在可满足的div中,我有不同的子元素ID。在光标移动时在可满足的标签内。我需要获取光标位置元素ID。

喜欢这样:示例

  1. 如果 cursorone上的位置,字符串获取输出是光标位置元素的ID 1
  2. 如果是two输出2

我尝试这样的尝试,但我找不到光标目标子ID。它仅在父母上。

function check(e){
  console.log($(e.target).attr('id'))
  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div contentEditable="true"   id="res" tabindex="2"  onkeydown="check(event)">solve:
<span id="1">one</span>
  <p id="2">two</p>
  <i id="3">three</i>
</div>

您可以这样做:

$('#res').on('keyup', function() {
  var el = window.getSelection().getRangeAt(0).commonAncestorContainer.parentNode;
  console.log(el.id);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div contentEditable="true" id="res" tabindex="2">solve:
  <span id="1" class='number'>one</span>
  <p id="2" class='number'>two</p>
  <i id="3" class='number'>three</i>
</div>

您可以在此链接上阅读有关window.getSelection()的信息。

您可以在此链接上阅读有关与getRangeAt()组合使用的window.getSelection()

最新更新