2016-09-02 14 views
0

私は、テキスト選択をハイライトするこのコードを持っています。これは、通路内に、選択したテキストをラップしてから、私はまったく同じタスクを達成したい<span style='background:yellow'> text selected </span>が追加されますが、その代わり、次の操作を行います。JSのCSSクラスに基づいてノードを挿入するにはどうすればよいですか?

<span class='blue_mark'> text selected </span> 

私は、次のコード内でこれを実現するにはどうすればよい:

var selection = document.getSelection(); 
    var range = selection.getRangeAt(0); 
    var contents = range.extractContents(); 
    var node = document.createElement('span'); 
    node.style.backgroundColor = "yellow"; 
    node.appendChild(contents); 
    range.insertNode(node); 
    selection.removeAllRanges(); //Clear the selection, showing highlight 
+0

いいえ、どのようにしてinsertNodeでaddClass()を使用しますか?私は他の原因でそれを使う方法を知っています: '$("#id ")。addClass(" example ");' –

+0

http://stackoverflow.com/questions/507138/how-do-i-add-a- class-to-a-given-element – MegaMind

答えて

1

スタイル属性の代わりにクラスを使用する場合は、node.style. backgroundColor = "yellow";node.classList.add('blue_mark');またはnode.className += ' blue_mark';に置き換えて使用します。

+0

スペースを忘れないでください: 'node.className + = 'blue_mark';' –

+0

あなたは@JeremyJStarcherの権利を持っています。ありがとう – colecmc

関連する問題