2013-12-23 2 views
0

У меня есть div с текстом и пробелами (включая текст). Как я могу выделить текст в div, если я знаю выделенные позиции? Я имею в виду:Подсветка текста на основе позиций

<div>Lorem<span> ipsum</span> dolor amet</div> 

для позиций 2 и 14:

<div>Lo<b>rem<span> ipsum</span> dol</b>or amet</div> 

Я могу сделать это просто? С небольшим и чистым кодом. Спасибо

+0

http://stackoverflow.com/a/16100733/96100 –

+0

Я знаю о диапазоне. Я ищу очень эффективное решение для выбора больших диапазонов чисел в течение небольшого времени. Диапазон переписывает DOM на каждой итерации. Я хочу его оптимизировать. –

ответ

0

HTML

<div id='mydiv'>Lorem<span> ipsum</span> dolor amet</div> 

JS/JQuery

var elm = $('#mydiv'); 
highlite(elm, 2, 28); //specify the start and end position 
// if you know the word you can find the index of word using indexOf/lastIndexOf 

function highlite(element, startpos, endpos) { 
    var rgxp = elm.html().substr(startpos,endpos) 
    var repl = '<span class="myClass">' + rgxp + '</span>'; 
    elm.html(elm.html().replace(rgxp, repl)); 
} 

Demo

http://jsfiddle.net/raunakkathuria/sD2pX/

Смежные вопросы