2016-09-23 2 views
2

Ich habe textarea und ich möchte Farbe des ausgewählten Textes ändern. Beispiel:Wie ändere ich die Farbe des ausgewählten Textes von Textarea?

var text = "abcdefg"; 

Ich möchte efg Farbe von ausgewähltem Text ändern.

hier ist mein Code:

var input = document.getElementById('area'); 
var value = input.value.substr(input.selectionStart, input.selectionEnd - input.selectionStart); 
$('#abc').find(value).attr('color',color); 
+0

können Sie nur Stil-Elemente hinzufügen und Text können nicht Farbe Stil. Aber Sie können ':: selection' css selector verwenden. Siehe http://www.w3schools.com/cssref/sel_selection.asp – Mohammad

+0

Sie müssen den ausgewählten Text in HTML umbrechen, da textNodes keinen Stil haben können. – evolutionxbox

+0

Warum hast du 'pure JS' &' jQuery' gemischt? –

Antwort

0

Sie können nicht die selection color für eine textarea ändern, können Sie es nur für non-input objects ändern.

Vielleicht sollten Sie versuchen, contenteditable statt textarea

3

Verwenden ::selection CSS-Selektor, der Teil des Textes auswählen angewählter wird. Sie können Ihre CSS-Eigenschaft zu ausgewähltem Text von Elementen hinzufügen.

var textarea = document.querySelector("textarea"); 
 
textarea.selectionStart = 12; 
 
textarea.selectionEnd = 23;
::-moz-selection { 
 
    color: red; 
 
} 
 
::selection { 
 
    color: red; 
 
}
<textarea>My textarea highlighted text</textarea>

+0

Die Farbe, die dem Text hinzugefügt wird, gehört zu den Optionen. Set css wie das ist nicht geeignet. – user2956672

+0

@ user2956672 Es gibt keine andere Lösung für Ihre Arbeit. Wenn Ihre Farbe jedoch begrenzt ist, fügen Sie textarea eine Farbklasse hinzu. Siehe https://jsfiddle.net/j62p92fa/ – Mohammad

Verwandte Themen