2016-09-07 74 views
0

我试图在用户单击单元格值时替换文本的颜色。这似乎是当我尝试在我的HTML中使用格式,它停止工作,但是,它没有格式正常工作。 JSFiddles将帮助您理解我正在采取的行动。在此之前,我想提几件事情:替换方法不使用HTML格式但使用格式化

  1. 当我不格式化,我只是用

    <div id='jqxPanel' style=" font-size: 13px; font-family: Verdana;"> My content here </div>var text = panel.text();

  2. 当我使用的格式,我使用

    <div id='jqxPanel' style=" font-size: 13px; font-family: Verdana;"><div style="margin: 10px;"><pre>My content here </pre></div></div>var text = panel.html();

这里是工作JSFiddle没有任何格式和非工作JSFiddle与格式化功能。如何让非工作的JSFiddle正常工作,以便我可以看到突出显示的文本?

回答

1

我更新了JSFiddle

$("#jqxgrid").on("cellclick", function (event) 
        { 
    var value = event.args.value; 
    var color = "#FF0000"; 
    var highlighted =     
     text.replace(new RegExp(value, 'ig'), '<span style="color:' + color + ';">' + value + '</span>'); 

    panel.jqxPanel('clearcontent'); 
    panel.jqxPanel('append', highlighted); 
    }); 

您是要替换的,而不是“东西”“东西”(注意空格)。而且你在搜索字符串和替换中都这样做。

此外,替换功能区分大小写。我添加了RegExp以使其不区分大小写。

但是,这只是一个例子,你可以看到它用按钮的情况代替了文本,所以“PATIENT”将被“Patient”突出显示。

+0

感谢Franx。如果我不想保持大小写不敏感怎么办?另外,用按钮的情况替换文本是否是一种好的做法? – John

+0

我认为最好的方法是找到一种方法来保留替换文本的大小写(唯一的问题是我可以看到这个)。不,我不这么认为,除非你100%确定按钮和文字的单词是相同的(但是为此,你必须使所有大写或小写)。对不起,我的英语不好。 – Franx