无法获得活跃div的内容

时间:2016-02-19 07:31:35

标签: jquery contenteditable

<div class="wrap3">
lorem lorem lorem
<div class="inside3 ed" contentEditable>ipsum ipsum ipsum</div>
</div>

<div id="btnsave">Save</div>

JS

$("#btnsave").click(function(){
    var a = document.activeElement.innerText;
    console.log(a);
});

ed内点击它变为活动状态 - (蓝色边框)

点击btnsave不会提供ed的内容,但会提供整个文档的内容。

2 个答案:

答案 0 :(得分:2)

$("#btnsave").click(function(){
    var a = $('.ed:focus').text();
});

我认为这样做。

另一种解决方案:

$("#btnsave").click(function(){
     $('.lastEdited').text();
     alert($('.lastEdited').text())
});
$("div[contentEditable]").click(function(){
    $("div[contentEditable]").removeClass('lastEdited');
    $(this).addClass('lastEdited');
});

DEMO

答案 1 :(得分:1)

我可以通过将保存元素更改为按钮来使其正常工作:https://jsfiddle.net/eac5L0aa/1/

<div class="wrap3">
lorem lorem lorem
<div class="inside3 ed" contentEditable>ipsum ipsum ipsum</div>

</div>

<button id="btnsave">Save</button>

$("#btnsave").click(function(){
    var a = getSelectionStart();
    console.log(a);
});
function getSelectionStart() {
   var node = document.getSelection().anchorNode;
   console.log(node);
   return (node.nodeType == 3 ? node.parentNode : node);
}

归功于此answer