如何修改此JavaScript以便删除<b>和<i>标签?</i> </b>

时间:2012-07-26 03:04:20

标签: javascript html tags

我正在尝试为Safari创建粗略的“ removeFormat ”命令。

现在我可以修改它以删除应用于文本的粗体或斜体标签,但不能同时删除两者。

function RemoveElement (element) 
{
   while (element.firstChild) 
   {
      element.parentNode.insertBefore (element.firstChild, element); 
   }
   element.parentNode.removeChild (element);
}

function RemoveBold () 
{
    var boldTag = document.getElementsByTagName ("b");
    var italicTag = document.getElementsByTagName ("i");

    for (var i = 0; i < boldTag.length; i++) 
    {
        var boldTags = boldTag[i]; 
    }

    for (var a = 0; a < italicTag.length; a++) 
    {
        var italicTags = italicTag[a];
    }
    if (boldTag||italicTag)   
    {
        RemoveElement (italicTags, boldTags);
    }
}

提前致谢

2 个答案:

答案 0 :(得分:0)

为什么不动态修改粗体标签的样式?对于你试图模仿的例子,情况更为真实。

换句话说:

$('b').css('font-weight', 'normal');

答案 1 :(得分:0)

你似乎弄乱了你的循环:

  • boldTagitalicTaglive NodeLists
  • 循环之后,变量boldTagsitalicTags包含相应列表的最后一项(或仍未定义)
  • 然后,检查两个NodeLists的存在...
  • 使用两个参数调用RemoveElement函数,而它只有一个参数。

请使用:

var boldTags = document.getElementsByTagName("b");
var italicTags = document.getElementsByTagName("i");
while (boldTags.length) // it's *live*
    removeElement(boldTags[0]);
while (italicTags.length) // it's *live*
    removeElement(italicTags[0]);