0
<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);
});

Click inside ed it becomes active - (blue border arround)

Click on btnsave does not give the content of ed but the content of entire document.

Chris Martin
  • 30,334
  • 10
  • 78
  • 137
qadenza
  • 9,025
  • 18
  • 73
  • 126

2 Answers2

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

I think this will do.

Another solution:

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

DEMO

Rino Raj
  • 6,264
  • 2
  • 27
  • 42
1

I was able to get it to work correctly with a change of the save element to a button: 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);
}

Credit to this answer

Community
  • 1
  • 1
Brian Mock
  • 41
  • 3