Всем привет!
Написал функцию которая делает выделенное слово жирным
function bold() {
let element = document.getElementById('p');
let selection = window.getSelection();
let range = selection.getRangeAt(0);
let node = document.createElement('range');
node.appendChild(range.cloneContents());
range.deleteContents();
range.insertNode(node);
if (!isBold(node)) {
node = document.createElement('strong');
node.appendChild(range.cloneContents());
node.innerHTML = node.innerHTML.replace(new RegExp('<range>(.*?)<\/range>', 'g'), '\$1');
range.deleteContents();
range.insertNode(node);
} else {
// Здесь нужно написать отмену жирности
}
}
function isBold(node) {
if (node.parentElement === document.getElementById('p')) {
return false;
} else if (node.parentElement.tagName.toLowerCase() === 'strong') {
return true;
} else {
return hasTag(node);
}
}
Но как сделать обратное действие?
Жирный текст
<strong>Здесь любой текст</strong>
Удаляем жирность у слова "любой"
<strong>Здесь</strong> любой <strong>текст</strong>