我正在尝试为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);
}
}
提前致谢
答案 0 :(得分:0)
为什么不动态修改粗体标签的样式?对于你试图模仿的例子,情况更为真实。
换句话说:
$('b').css('font-weight', 'normal');
答案 1 :(得分:0)
你似乎弄乱了你的循环:
boldTag
和italicTag
为live NodeLists boldTags
和italicTags
包含相应列表的最后一项(或仍未定义)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]);