JavaScript无法用新文本替换文本

时间:2016-04-07 07:45:39

标签: javascript jquery angularjs

我试图在AngularJs和jQuery的帮助下转换所选文本的字体。这是我的代码。一切正常,但我无法用新文本更改文本。

这是我的代码:

   var app = angular.module('myApp', []);
   app.controller('editor', function($scope) {
     $scope.color = "black";
     $scope.selectedText = "";
     $scope.changeFont = function() {
       if ($scope.selectedText != "") {
         var changedText = "<span style='font-size:" + $scope.kys_selected_font + "px' >" + $scope.selectedText + "</span>";
         alert($scope.selectedText + $scope.kys_selected_font + "      " + changedText);
         document.getElementById("#content").innerHTML.replace($scope.selectedText, changedText);
       } else {
         $("#content").append("<span  id='one' style='font-size:" + $scope.kys_selected_font + "px' > this is some text </span>");
         $("#one").focus();
       }
     };
     $("#content").mouseup(function() {
       $scope.selectedText = window.getSelection();

     });
   });

1 个答案:

答案 0 :(得分:1)

innerHTML.replace(...)会返回一个新字符串,而不是修改现有字符串,因此您的替代品不会修改该元素。

您需要实际更新属性:

var el = document.getElementById("content");
el.innerHTML = el.innerHTML.replace($scope.selectedText, changedText);

(也请注意#根据@IvanSivak的评论从元素ID中删除