2014-01-31 69 views
3

我有一个contenteditable区域,当用户完成编辑时,我会将数据保存到文件。当用户使用第一个浏览器,然后使用另一个浏览器时,由contenteditables创建的不同样式会导致混乱且不兼容的代码。Javascript JQuery替换标签

我想知道是否有什么方法可以替代在Chrome中使用“标准”标签(例如<b>xxx</b>)创建的<span style="font-weight:bold">XXX</span>标签。

在此先感谢

回答

4

你可以试试这个:所以

$('span').each(function(){ // iterate to the all the spans 
    if($(this).css('font-weight') == 'bold'){ // check if font is bold 
     $(this).contents().unwrap().wrap('<b></b>');​ 
    } // unwrap the content and wrap it 
}); 

,这里什么事情是:

  1. 迭代通过你的文档中的所有跨度
  2. 检查,如果CSS样式是“大胆”
  3. 如果为true,则首先解开其持有的内容,并与您选择的标签包装它

如此类似,您必须单独检查所有其他css样式并相应地替换/包装它。

+0

谢谢,每个命令都需要一个新的if,但应该没问题。 – StorySystems

+0

很高兴,如果这对你有帮助。 – Jai

1

用途:

$('span').each(function(){ // iterate to the all the spans 
    if($(this).css("font-weight") == "bold"){ // 
    $(this).contents().unwrap().wrap('<b></b>');​ 
} 
}); 

Working Demo

+1

我需要用b标记替换粗体,用u等下划线替换。我看不到这些代码如何区分这些差异 – StorySystems

+0

@StorySystems:没有阅读那部分。现在更新了代码和演示。 –