首页 > 解决方案 > contenteditable - 向当前 div 添加一个类

问题描述

currentDivdiv 在按钮单击时是否有插入符号
我需要添加一个类
问题 - 如何获取当前的 div?

$('button').on('click', function(){
$(currentDiv).addClass('indent');
});
.indent{margin-left:30px;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div contenteditable>
<div>lorem</div>
<div>ipsum</div>
<div>dolor</div>
</div>

<button>CLICK</button>

标签: javascriptjquerycontenteditable

解决方案


您可以使用RangestartContainer属性来获取光标指向的元素:

const contenteditable = $('[contenteditable]');
$('button').on('click', function(e) {
  var sel = window.getSelection();
  var range = sel.getRangeAt(0);
  var elem = range.startContainer.parentNode;
  $(elem).addClass('indent');
});
.indent {
  margin-left: 30px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div contenteditable>
  <div>lorem</div>
  <div>ipsum</div>
  <div>dolor</div>
</div>

<button>CLICK</button>


推荐阅读