我试图在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();
});
});
答案 0 :(得分:1)
innerHTML.replace(...)
会返回一个新字符串,而不是修改现有字符串,因此您的替代品不会修改该元素。
您需要实际更新属性:
var el = document.getElementById("content");
el.innerHTML = el.innerHTML.replace($scope.selectedText, changedText);
(也请注意#
根据@IvanSivak的评论从元素ID中删除