画像を選択して、選択範囲にクラス名を追加したい。を使用してwindow.getSelection
。
function addClassName() {
var sel = window.getSelection();
//what goes here???
}
<input type='button' onclick='addClassName();' value='addClassName'/>
画像を選択して、選択範囲にクラス名を追加したい。を使用してwindow.getSelection
。
function addClassName() {
var sel = window.getSelection();
//what goes here???
}
<input type='button' onclick='addClassName();' value='addClassName'/>
クラスを選択に追加するには、それをラップする必要があります<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>');
}
}
これにより、適切な方向に導かれるはずです。必要に応じて変更してください。
$(sel).find('img').addClass('myClass');
これは、選択を取り、それを jQuery オブジェクトに変換し、画像を見つけて、それにクラスを追加します。
私はこれをテストしていません。
JavaScript を使用する場合は、次のようにします。
function addClassName() {
$('img').addClass('newClass') // adds the class 'newClass' to all image objects
}
<input type='button' onclick='addClassName();' value='addClassName'/>
その関数では、「img」以外の任意のセレクターも使用できます
var sel= window.getSelection().getRangeAt(0);
$(sel).addClass("someClass");
window.getSelection()
選択は表示されますが、現在の (または強調表示された) 選択は表示されません。そのためには、選択の getRangeAt メソッドを使用する必要があります