从textarea更新最后一个目标contenteditable的html

时间:2014-08-03 08:40:37

标签: javascript jquery

http://liveweave.com/1iWx1x

我的问题很简单。

选择/专注于几个有意义的元素。然后选择textarea并从textarea更改最后一个聚焦元素的html。问题是我的textarea想要更新所有以前关注的元素而不是最后一个元素。

如果有人能帮助它,我将非常感激。

$(document).ready(function() {
  // Grab selected element's html
  $("div").on('focus', function() {
    $("#show-selected-elms-code").val($(this).html());
    $("body").find("div").on('focus', function(e) {
      $("#show-selected-elms-code").val($(e.target).last().html());
      $(this).on('keyup change', function() {
        $("#show-selected-elms-code").val($(this).html());
      });
      $("#show-selected-elms-code").on('keyup change', function() {
        $(e.target).last().html($("#show-selected-elms-code").val());
      });
    });
  });

  $('#elm-font-family').on('click change', function() {
    document.execCommand('FontName',false,$(this).val());
  });
});

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

$(document).ready(function() {
  var selectedDiv;

  $('[contenteditable]').on('click',function(){
      selectedDiv=this;
  });

  $("div").on('focus keyup change', function() {
    $("#show-selected-elms-code").val($(this).html());
  });

  $("#show-selected-elms-code").on('keyup change', function() {
    $(selectedDiv).html($("#show-selected-elms-code").val());
  });

  $('#elm-font-family').on('click change', function(e) {
    document.execCommand('FontName',false,$(this).val());
  });
});

演示: http://liveweave.com/BfGir8