2013-12-17 52 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

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