2014-05-09 60 views
2

我正在創建一個CKEditor插件。作爲這個插件的一部分,我希望能夠從編輯器的內容中刪除一些任意的HTML元素。例如<img id="remove-me" />刪除CKEditor中的HTML元素

我知道我可以得到內容(var contents = e.getData();)並用其他東西替換內容(e.setData(newContents);)。我知道我可以做一個字符串/正則表達式替換,但這會變得棘手,因爲用戶可能會向HTML添加一些任意屬性或間距。

我很想能夠使用像jQuery來查找和刪除元素(如$("#remove-me").remove(),但不知道的方式做到這一點。

有什麼建議?的

+0

你已經試過'$(「#刪除我「)。remove()方法'? – user3158900

回答

7

內容在CKEditor的保持在其中您可以通過訪問editor.editable()的元素。然後,您可以像使用dom.element.find()dom.element.findOne()方法終於可以使用dom.element.remove()刪除元素。您也可以訪問native DOM node和使用jQuery。

例USI NG CKEditor的API:

editor.editable().findOne('img').remove(); 

使用jQuery:

jQuery(editor.editable().$).find('img').remove(); 
+0

僅限於CKEditor 4,還是CKEditor 3也可以使用? –

+2

僅限CKEditor 4。在CKEditor 3中,您可以使用'jQuery(editor.document。$)'。 – Reinmar

+0

很好,謝謝 –

0

你可以像下面這樣做

CKEDITOR.instances.editor_obj.document.getById(id).remove(); 

editor_obj.document.getById(id).remove();