2015-06-02 26 views
-3

我如何能凸顯字如何hightlight一個字的js

小提琴here

代碼:

AutoSuggestControl.prototype.selectRange = function (iStart /*:int*/, iLength /*:int*/) { 
    //use text ranges for Internet Explorer 
    debugger 
    var range = document.createRange(); 
    var selection = window.getSelection(); 
    selection.removeAllRanges(); 
    selection.addRange(range); 

    var oRange = selection; 
    oRange.moveStart("character", iStart); 
    oRange.moveEnd("character", iLength); 
    oRange.select(); 


    //set focus back to the textbox 
    this.textbox.focus(); 
}; 

但它顯示錯誤moveEndmoveStart功能

+1

請提供腳本或小提琴片段HTML DOM來理解,突出 –

+0

請參閱更新的問題@KarthiKeyan – Dhara

+0

oRange是一個選擇,而不是片段。也許你想說'var oRange = range'而不是'var oRange = selection'?但是,moveStart和moveEnd方法既不是[Range](https://developer.mozilla.org/en-US/docs/Web/API/Range)也不是[Selection](https:// developer.mozilla.org/en-US/docs/Web/API/Selection)(IE除外)。也許你的意思是['Range.prototype.setStart'](https://developer.mozilla.org/en-US/docs/Web/API/Range/setStart)? –

回答

1

使用此簡單功能

function hilighter(word, element) { 
     var rgxp = new RegExp(word, 'g'); 
     var repl = '<span class="HiLighterClass">' + word + '</span>'; 
     element.innerHTML = element.innerHTML.replace(rgxp, repl); 
    } 

使用

您可以通過不同的方式被編號,類別等獲得元,喜歡

hilighter('youWord', document.getElementByTag("Body"));