2013-12-17 48 views
1

這是很簡單的JavaScript調用:獲取段落的ID內CKEDITOR 4

CKEDITOR.instances.yourEditorInstance.getData() 

返回:

<p id="rand_dom_123">Python A B C</p> 
<p id="rand_dom_852">PHP A B C D E F</p> 

但是:

CKEDITOR.instances.yourEditorInstance.editable().getText() 

返回:

Python A B C 
PHP A B C D E F 

這是我的代碼:

$('.jquery_ckeditor').ckeditor(config); 

    CKEDITOR.instances['editor'].on('blur', function() {     
     var html_content = CKEDITOR.instances['editor'].getSelection().getSelectedText() ; 
     alert(html_content); 
    }); 

我怎樣才能得到所選段落的ID?例如,我可以知道它的段落編號,如果我選擇A B C

回答

1

您可以訪問Ë文檔DOM

CKEDITOR.instances['editor'].on('blur', function() {     
     var html_content = CKEDITOR.instances['editor'].document.$.getElementById('myId') ; 
     alert(html_content); 
}); 

,或者您可以使用CKEDITOR DOM

var element = new CKEDITOR.dom.element(document.getElementById('myId')); 

---更新---

,如果你只想要選擇比你可以enumarate的range

var ranges = CKEDITOR.instances['editor'].getSelection().getRanges(); 

for (var i = 0, len = ranges.length; i < len; ++i) { 
    //dig into ranges[i] 
} 
+0

問題是我想獲取選定段落的ID。 – kn3l

+0

@BandOfBrothers使用範圍 – giammin

+0

var html_content = CKEDITOR.instances ['editor']。getSelection()。getRanges()。createIterator(); \t \t \t id = html_content.getAttribute('id'); \t \t \t alert(id);不起作用。 – kn3l

1

這裏是你更新的小提琴..

http://jsfiddle.net/wfLPg/1/

的Jquery:

var editor = CKEDITOR.instances['my-editor']; 
var value = CKEDITOR.instances['my-editor'].editable().getText(); 
alert(value); // will return both p element texts 

var firstPElement = $(editor.editable().$).find('p:eq(0)'); // will select first p element 
alert(firstPElement.attr("id")); // will get first p element ID 

var secondPElement = $(editor.editable().$).find('p:eq(1)'); // will select second p element 
alert(secondPElement.attr("id")); // will get second p element ID 

注:$(editor.editable().$): - 獲取本機用於編輯器的可編輯區域的DOM元素,用於jquery用作元素

+0

我正在使用CKEditor 4 – kn3l

+0

什麼是'元素'爲你的情況?是選定的段落? – kn3l

+0

看看我更新的小提琴並回答... –