如何在选定的文本JavaScript中查找某些标记

时间:2014-02-14 19:13:52

标签: javascript html

我希望使用JavaScript检查所选文本中是否存在某个标记。从本质上讲,如果文本已经加粗,它也决定是否展开文本(这是一个学习项目,所以我不打算使用现有的WYSIWYG文本编辑器)。

所以,基本上,我有一个满足的'div'然后另一个div与侧面的按钮来设置字体的样式。这是HTML代码:

<div class = 'edit_menu'>
<a id = 'b' title = 'Bold'><image class = 'icon' src = '../images/icons/bold.jpeg' id = 'bold'></image></a><br>
<a id = 'i' title = 'Italicize'><image class = 'icon' src = '../images/icons/italicize.jpeg' id = 'italicize'></image></a><br>
<a id = 'u' title = 'Underline'><image class = 'icon' src = '../images/icons/underline.jpg' id = 'underline'></image></a><br>
</div>

我的JavaScript(仅用于粗体功能):

document.getElementById('b').onclick = function() {
   if (window.getSelection().rangeCount != 0)
   {
       var select = window.getSelection();
       var selection = select.getRangeAt(0);
       if (selection.contains(selection.getElementsByTagName('b')))
       {
            getElementsByTagName('b').parentNode.removeChild(getElementsByTagName('b'));
       }
       else {
            var selectedText = selection.cloneContents();
            var span = document.createElement('b');
            span.appendChild(selectedText);
            selection.insertNode(span);
       }
    }
 };

Chrome回放的错误是:

Error: Object [Object Range] has no method getElementsByTagName

所以,我想我需要在范围的末尾添加一些东西?

0 个答案:

没有答案