在JQuery的文本区域中突出显示

时间:2012-03-29 10:55:55

标签: jquery css

我有一个HTML表格,其中有三列

错误 - 用户输入 - 正确格式

当我将鼠标悬停在桌子上时,行突出显示

\ CSS

table tr:hover                
 { 
    font-weight: bolder; 
    color:black;
 }

当我悬停并执行此操作时,我希望文本也会在我的文本区域中突出显示

即如果我将鼠标悬停在第一行上,我希望“用户输入”列中的文本在文本区域中也是粗体,以便用户可以看到错误的位置

错误 - 用户输入 - 正确格式     航班号12 [0-9] {3}

因此,当我将鼠标悬停在该行上时,我希望它在文本区域中搜索 12 ,并为每个 12 搜索并找到其他划船的相同内容。

概要

如果找到

文本区 USER INPUT列 bolden 中的内容

http://jsfiddle.net/EZj9T/到目前为止我所拥有的是这样的,当你将鼠标悬停在标题中的一行以及其中的文本时,还要加粗文本区域中的文本

1 个答案:

答案 0 :(得分:0)

我认为您不能在textarea中添加标记(例如STRONG标记)。您也可以使用适合的视觉样式。

如果你有一个DIV而不是一个textarea(就像一个有意思的),你会做类似的事情:

$('tr').hover(function() {
    var ta = $(this).find('.textarea');
    ta.html(ta.html().replace(/12/g,'<strong>12</strong>'));
});

<强>更新

以下是您尝试做的想法的示例:http://jsfiddle.net/EZj9T/4/

您需要使用contenteditable DIV才能使用内部标记突出显示单词,textarea将不允许使用。

$('tr').hover(function() {
    var text = [];
    $.each($(this).find('td'), function() {
        text.push($.trim($(this).text()));
    });
    highlight(text);
},function() {
    highlight(null);
});

var area = $('div[contenteditable]');

function highlight(what) {
    area.html(area.html().replace(/<strong\/?>/g,''));
    $.each(what || [], function(i, val) {
        area.html(area.html().replace(new RegExp(val,'gi'),'<strong>'+val+'</strong>'));
    });
}