2015-06-17 4 views
0

Я использую ckeditor inline на веб-странице, которую я создал. Я могу сохранить данные в базе данных, но главная проблема заключается в том, что ckeditor применяет свои собственные классы и другие атрибуты ко всем элементам, для которых contenteditable задано значение true. Также он удаляет некоторые классы по элементам. Это влияет на стиль моей веб-страницы. Я хочу удалить классы и другие атрибуты, установленные ckeditor, прежде чем печатать их в браузере. Для этого мне нужно пропустить все элементы, имеющие значение editable editable. Как мы можем это сделать с помощью js?как перебирать определенный атрибут с помощью js?

+0

что-то вроде '$ ("[contenteditable]") ' – dandavis

+1

Вы должны прочитать, как правильно [получить данные из CKEditor] (http://docs.ckeditor.com/#!/guide/dev_savedata). – oleq

+0

Я прочитал, как извлекать данные из редактора ck, и что именно я получаю данные, но проблема в том, что это данные, измененные ckeditor (вместе с новыми классами). Я хочу иметь данные без этих новых классов @ oleq – krishna

ответ

0

Обычная JS:
вар эль = document.getElementsByTagName ("*");
для (вар я = 0, L = el.length; я < л; я ++)
{
, если (эл ​​[я] .contentEditable)
{
// Есть ли здесь то, что вы хотите
}
}

JQuery:

в dandavis сказал:

$("*[contentEditable]").each(function() 
{ 
    // 
}); 

Edit:

Насколько .contentEditable не возвращает логическое значение, вы должны проверить, имеет ли элемент contentEditable следующим образом:

var el = document.getElementsByTagName("*"); 

for(var i = 0, l = el.length; i < l; i++) 
{ 
    if (el[i].contentEditable === "true" || el[i].contentEditable === "") 
    { 
     // Do here what you want 
    } 
} 

Для того, чтобы удалить contentEditable атрибут:
В JQuery вы можете сделать это следующим образом:

$("*[contentEditable]").each(function() 
{ 
    this.prop("contentEditable", false); 
}); 

Plain ЯШ:

el[i].contentEditable = "false"; 
+0

Обычный метод JS, который предлагается здесь, просто делает это для всех элементов в документе, а не только с атрибутом contenteditable. Я попытался добавить счетчик внутри оператор if и внешняя сторона оператора if (оба в цикле for). Оба этих счетчика привели к тому же значению. также я вручную подсчитал атрибут contenteditable в моем документе, и цифры сильно отличаются – krishna

+0

, и я до сих пор не понимаю, как удалить атрибут из тега, если этот тег имеет атрибут contenteditable .. Я немного новичок в этом.пожалуйста, помогите – krishna

+0

@krishna jQuery делает то же самое «за кулисами», не проверяя все элементы в документе, вы не узнаете, какой из них имеет атрибут contentEditable. P.S. см. EDIT –

Смежные вопросы