Я думаю, что ваш вопрос продублирован, так или иначе я просто обыскал интернет и нашел это article.
Ниже конечного кода, чтобы достичь того, что вы спросите
function highlightSelection() {
var selection;
//Get the selected stuff
if(window.getSelection)
selection = window.getSelection();
else if(typeof document.selection!="undefined")
selection = document.selection;
//Get a the selected content, in a range object
var range = selection.getRangeAt(0);
//If the range spans some text, and inside a tag, set its css class.
if(range && !selection.isCollapsed)
{
if(selection.anchorNode.parentNode == selection.focusNode.parentNode)
{
var span = document.createElement('span');
span.className = 'highlight-green';
range.surroundContents(span);
}
}
}
Я также нашел эту библиотеку rangy, который является помощником вы можете использовать, чтобы выбрать текст, но работает только с JQuery, так что я предпочитаю первый ваниль-JS решение ,
var el = $("<span></span>");
el.text(rangy.getSelection().getRangeAt(0).toString());
rangy.getSelection().getRangeAt(0).deleteContents();
rangy.getSelection().getRangeAt(0).insertNode(el.get(0));
rangy.getSelection().getRangeAt(0).getSelection().setSingleRange(range);
На Range и Selection User
Вы должны выбрать диапазон, используя Document.createRange, которые возвращают объект Range, прежде чем вы можете использовать Range.surroundContents(), вы можете создать диапазон таким образом.
var range = document.createRange();
range.setStart(startNode, startOffset);
range.setEnd(endNode, endOffset);
На практике вы будете следовать this guide понимать диапазон и выбор tecniques. Наиболее важный момент содержится в этом коде
var userSelection;
if (window.getSelection) {
userSelection = window.getSelection();
}
else if (document.selection) { // should come last; Opera!
userSelection = document.selection.createRange();
}
После этого вы можете использовать
userSelection.surroundContents()
[** Проверьте это **] (http://stackoverflow.com/questions/8644428/how -to-highlight-text-using-javascript), я думаю, это поможет вам. Точное требование. –
Я думаю, что ваша ссылка - это то же требование. Но не конкретная проблема. Решение в этой ссылке такое же, как и в моем решении, но мне нужно улучшение –
Итак, вы можете изменить/обновить его в соответствии с вашими требованиями. Никто не будет кодировать для вас. –