Ich habe folgendes div
:Wrap bestimmtes Wort mit <span> mit Jquery
<div id="query" style="width:500px; height:200px;border:1px solid black"
spellcheck="false" contenteditable="true"></div>
wo Kunden ihre SQL
Abfragen schreiben. Was ich versuche zu tun, wickeln Worte des Kunde Recht tritt nach Raum mit einem span
und gibt diese Spanne ein gewisses class
nach dem Wort schlagen getippt:
Beispiel
Wenn der Client-Typ select
ich brauche dieses Auswahlwort wie dies in dem div wickeln:
<span class='select'> SELECT </span> <span> emp_name </span>
CSS
.select{color:blue ;text-transform:uppercase;}
Es ist etwas sehr ähnlich zu dem, was jsFiddle
tut. Wie kann ich das erreichen?
Hier ist, was ich versucht habe bisher: jsFiddle
$(function(){
$('div').focus() ;
$('div').keyup(function(e){
//console.log(e.keyCode) ;
if(e.keyCode == 32){
var txt = $('div').text() ;
var x = 'SELECT' ;
$('div:contains("'+x+'")').wrap("<span style='color:blue ;
text-transform:uppercase;'>") ;
if(txt == 'SELECT'){
console.log('found') ; // why This Doesn't do any thing ?
}
}
});
});
Dank .. gut aussehen, aber warum konzentriert es sich am Anfang aller Span nach dem Brennen? –
@MinaGabriel Das Caret geht an den Anfang, nachdem Sie den Wert von Textarea mit einem Skript geändert haben. Sie können dies beheben, indem Sie die Caret-Position vor dem Update abrufen und nach dem Update einstellen. –
Schritt 2: verhindern, dass der Caret springt. –