突出显示带有粗体,下划线和斜体样式的文本

时间:2011-11-23 10:41:24

标签: javascript jquery

如何搜索具有以下所示属性的文本。

 .css('font-weight', 'bold');
 .css('font-style', 'italic');
 .css('text-decoration', 'underline');
 <b> Some Text </b>
 <u> Some Text </u>
 <i> Some Text </i>

我想替换像这样的文字

 var body = $('body');
 var replaced = body.html().replace(text,'<span class="hasStyle">'+text+'</span>'); 
 $('body').html(replaced);

3 个答案:

答案 0 :(得分:2)

在jQuery中使用filterwrap函数。这是一个简单的例子:

$("*").filter(function(i, elm) {
    return $(elm).css("text-decoration").match(/underline/i);
}).wrap("<span class=\"highlight\" />");

http://jsfiddle.net/joshcomley/6RNQx/

这可以让您大致了解如何解决问题,并且您可以轻松地将过滤器扩展到您自己的标准。

答案 1 :(得分:1)

1)块的第一部分用于设置值。

2)请尝试这个

var ccsStyle="font-weight:bold";
var elements = [];
$("*").each(function(){
  var st = $(this).attr("style");
  if(st.indexOf(cssStyle) > -1) elements.push(this);
});

// now elements array holds all you need to replace

答案 2 :(得分:0)

你可以这样成功;

$(this).find("span").each(function(index, value){

    var fontstyle = $(this).css('font-style');
    if(fontstyle == "italic")
    {
        //Do it here                 
        alert("it's italic\n" + $(this).html());
    }
});