2014-01-31 3 views
0

im, который пишет редактор страниц для моего школьного сайта, все идет хорошо, но ive ударил проблему с удалением стилей шрифтов из выбранного текста. Я могу выбрать текст и получить jquery для применения тега span к нему с ассоциированным классом css, моя проблема возникает, когда я хочу удалить этот класс из выбранного текста. Вот что я до сих пор ...переключение выделенного текста на выделенный текст в редактируемый div

<div class="text" contenteditable="true"> 
Editable Content 
</div> 

У меня есть прослушиватель события, который улавливает смелое нажатие кнопки и запускает функцию ниже ...

function makeBold() { 
var range = window.getSelection().getRangeAt(0); 
alert(range.anchorNode.parentNode.nodevalue); 
var newNode = document.createElement('span'); 
newNode.className = "bold-text"; 
range.surroundContents(newNode); 
} 

Эта функция отлично работает, чтобы применить но я не могу понять, как я тогда удалю его с помощью переключателя. Я пытаюсь понять, как использовать выбор диапазона для удаления родительских тегов. Я пытался использовать селектор .closest(), но продолжать получать объекты или неопределенные ошибки? Может ли кто-нибудь сказать мне, если im на правильном пути?

Благодаря

Dave

Edit:

им не используя типичный селектор типа #myid или .classname мне нужно применить стиль к тексту, который выбирается пользователем, поэтому почему im обертывает его тегами span с помощью функции выше. idealy Мне нужно найти способ найти ближайший родительский узел с классом .bold-text, применяемым к нему, и удалить его.

ответ

0

Используйте метод 'removeClass' для jQuery, чтобы удалить класс, который вы предоставили тексту, который будет отформатирован. На каждом тумблер, addClass и removeClass

http://api.jquery.com/removeclass/

ли это что-то вроде этого

по щелчку один - $('#id').addClass('class_of_text');

по щелчку два - $('.class_of_text').removeClass('.class_of_text);

по щелчку три - $('#id').addClass('class_of_text');

и так далее ...

+0

Спасибо за ответ, как бы использовать диапазон выбора в качестве селектора? Ive пробовал $ (диапазон), но он не работает? – user3257194

+0

Я точно не понял, что вы сказали. Но см. Редактирование, если это поможет. Если нет, уточните свой вопрос. – halkujabra

+0

Я не использую типичный селектор типа #myid или .classname. Мне нужно применить стиль к тексту, который выбран пользователем, следовательно, почему im обертывает его тегами span с помощью функции выше. idealy Мне нужно найти способ найти ближайший родительский узел с классом .bold-text, применяемым к нему, и удалить его. – user3257194

0

Вы можете использовать removeattribute javascript для удаления атрибута класса из этого элемента.

+0

спасибо за ваш ответ, но я не думаю, что он будет работать с выбором диапазона. Мне нужен способ найти родительский тег span, к которому применяется класс .bold-text? – user3257194

+0

Да, вы пишете, как мы можем выбрать родителя выбранного текста.? Я сообщу вам, нашел ли я что-то полезное. Благодарю. – Vignesh

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