2016-04-07 2 views
2

Ich versuche die Schriftart des ausgewählten Textes mit Hilfe von AngularJs und jQuery zu konvertieren. Das ist mein Code. Alles funktioniert gut, aber ich kann den Text nicht mit einem neuen Text ändern.JavaScript ist nicht in der Lage, Text durch neuen Text zu ersetzen

Dies ist mein Code:

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

btw. sollte nicht die 'document.getElementById (" # content ")' ohne '#' sein? –

Antwort

1

innerHTML.replace(...) gibt einen neuen String, anstatt die vorhandenen zu modifizieren, so dass Ihr Ersatz wird nicht das Element ändern.

Sie müssen tatsächlich die Eigenschaft aktualisieren:

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

(auch # von Element-ID entfernt Notiz als pro @IvanSivak ‚s Kommentar)

Verwandte Themen