【问题标题】:cannot get the content of active div无法获取活动 div 的内容
【发布时间】:2016-02-19 07:31:35
【问题描述】:
<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的内容,而是整个文档的内容。

【问题讨论】:

  • $('.ed').text() 仅用于文本或$('.ed').html() 用于文本和其他 html 对象
  • @guradio,谢谢,但我需要活动 div 的内容。下一次点击将在另一个 div 上
  • 我已经更新了我的答案。
  • @RinoRaj,您更新的答案不起作用。控制台为空。请在发布前检查您的解决方案。
  • @bonaca 检查我的演示

标签: jquery contenteditable


【解决方案1】:
$("#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

【讨论】:

  • Rino,谢谢,但我需要活动 div 的内容。下一次点击将在另一个 div 上。文档中有很多 ed div。
  • 不,控制台为空,var a = $('.ed:focus').text();
  • 为什么不能使用 html() 而不是 text()
  • @safinchacko html() 将返回整个内容。考虑这样一种情况,例如 OP 在该 div 中有更多元素。然后 html() 不会很好:)
【解决方案2】:

我能够通过将保存元素更改为按钮使其正常工作: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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多