2010-12-15 49 views
10

$(element)[0].selectionStart semble fonctionner uniquement pour les textareas. Y at-il une alternative pour les non textareasJquery: selectionStart pour les éléments non textarea


Im essayant d'envelopper les chaînes dans les éléments DOM dans les balises (gras, italique ...)



aussi, comment puis-je défais l'emballage?

Répondre

9

Ceci est une zone délicate. Vous avez besoin de l'objet Selection et DOM Range. Cependant, IE fait tout différemment aux navigateurs appropriés.

Envelopper la sélection à l'intérieur des variables est également non trivial en général: vous devez considérer tous les nœuds de texte dans la sélection.

Ma bibliothèque Rangy normalise l'API Selection/Range pour IE et possède un module to apply a CSS class to a selection, ce qui peut vous aider dans une certaine mesure. Je prévois également d'écrire un module plus général pour appliquer d'autres styles à une sélection/gamme.

Désolé pour l'auto-promotion éhontée, mais à court d'écrire beaucoup de code vous-même, je ne sais pas quoi d'autre à suggérer.

+0

Merci beaucoup pour votre réponse, je dois apprendre plus de manipulation de chaîne javascript. – Zebra