2016-04-07 11 views
2

AngularJsとjQueryの助けを借りて、選択したテキストのフォントを変換しようとしています。これは私のコードです。すべて正常に動作していますが、私は新しいテキストでテキストを変更することができません。JavaScriptでテキストを新しいテキストに置き換えることができません

これは私のコードです:

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

をところで。 'document.getElementById("#content ")' '# 'がなくてはいけませんか? –

答えて

1

innerHTML.replace(...)ので、あなたの交換は要素を変更することはありません、むしろ既存のものを修正するよりも、新しい文字列を返します。

あなたが実際にプロパティを更新する必要があります。

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

(も@IvanSivakのあたりのコメントとして要素IDから削除#に注意してください)