2009-09-25 31 views
2

i ont une partie de texte avec des balises html, par exempleChanger la couleur d'une partie du texte en utilisant javascript?

<b>something</b> 

je sélectionne une partie de texte par exemple « certains ».

avec getSelection(). GetRangeAt (0); Je reçois la position de caret (textcursor), donc je sais quelle partie du texte j'ai choisi.

J'ai startOffset et endOffset. mais le problème est que startOffset et endOffset ne tient pas compte des balises html, et donc les chiffres qui il revient ne sont pas mauvais, et je ne sais pas sur quelle partie du texte que je dois appliquer

<span style="background-color: somecolor ">some</span> 

tout ides comment résoudre ce problème ? juste grâce

+0

trouvé cela, et va lire, peut-être va aider http://www.quirksmode.org/dom/range_intro.html –

Répondre

1
<b id='str1'>something</b> 
<script> 
function jsReplace() 
{ 
    var elem = document.getElementById('str1') 
    elem .innerHTML = elem .innerHTML.replace('some', '<span style="background-color: somecolor ">some</span>') 

} 
</script> 
+0

oui, mais qu'allez-vous faire, s'il n'y a pas id dans ce tag b? –

+0

comment obtenez-vous votre chaîne et de quel contrôle? – Khodor

+0

avec la sélection et la gamme, l'utilisateur sélectionne du texte avec la souris –