如何修改此javascript使其'll删除两者<b>并且<i>标签

How can I modify this javascript so it'll remove both <b> and <i> tags?

本文关键字:lt gt 删除 标签 并且 ll 何修改 修改 使其 javascript      更新时间:2024-03-03

我正在尝试为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);
    }
}

提前感谢

您似乎把循环搞砸了:

  • boldTagitalicTag是活动节点列表
  • 循环之后,变量boldTagsitalicTags包含各自列表的最后一项(或仍未定义)
  • 然后,检查是否存在两个NodeList
  • 并用两个参数调用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]);

为什么不动态修改粗体标记的样式?这将更符合你试图效仿的例子。

换句话说:

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