3

画像を選択して、選択範囲にクラス名を追加したい。を使用してwindow.getSelection


function addClassName() {
     var sel = window.getSelection();
     //what goes here???
}


<input type='button' onclick='addClassName();' value='addClassName'/>
4

4 に答える 4

6

クラスを選択に追加するには、それをラップする必要があります<span>。そうしないと機能しません。これが解決策です。

    function addClassToSelection(){
    var sel = window.getSelection ? window.getSelection() : document.selection.createRange(); // FF : IE
    if(sel.getRangeAt){ // thats for FF
    var range = sel.getRangeAt(0);
    var newNode = document.createElement("span");
    newNode.setAttribute('class', 'someclass');
    range.surroundContents(newNode);
    } else { //and thats for IE7
    sel.pasteHTML('<span class="someclass">'+sel.htmlText+'</span>');

    }
    }

これにより、適切な方向に導かれるはずです。必要に応じて変更してください。

http://jsfiddle.net/wP8w9/2/で実際の例を確認してください

于 2011-03-07T19:38:34.693 に答える
1

$(sel).find('img').addClass('myClass');

これは、選択を取り、それを jQuery オブジェクトに変換し、画像を見つけて、それにクラスを追加します。

私はこれをテストしていません。

于 2011-03-07T18:23:30.267 に答える
0

JavaScript を使用する場合は、次のようにします。

function addClassName() {
     $('img').addClass('newClass') // adds the class 'newClass' to all image objects
}


<input type='button' onclick='addClassName();' value='addClassName'/>

その関数では、「img」以外の任意のセレクターも使用できます

于 2011-03-07T18:14:47.320 に答える
0
var sel= window.getSelection().getRangeAt(0);

$(sel).addClass("someClass");

window.getSelection()選択は表示されますが、現在の (または強調表示された) 選択は表示されません。そのためには、選択の getRangeAt メソッドを使用する必要があります

于 2011-03-07T18:51:43.410 に答える