2016-09-07 77 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