Я пытаюсь создать простую функцию выделения, используя Javascript и jQuery, однако у меня есть две проблемы, которые я могу обойти в данный момент.
Сначала следующий код переключает совпадающие слова с искомыми (что мне не нужно).
Во-вторых, скрипт нацелен на узлы из тела (тегов), что также является нежелательным эффектом.
На основании скрипта может кто-то помочь с проблемами под рукой. Я пытался использовать функцию match
без особого успеха. Я знаю, что есть плагины для этой конкретной задачи c, но я бы sh сделал это без них.
function search_x() {
$('#hint_search').css('visibility', 'hidden');
$('#hint_search').css('color', 'transparent');
$('#nav_tooltip_2').css('height', '0');
$('#nav_tooltip_1').css('height', '0');
var search_word = prompt("Search for text", "");
var s_reg = new RegExp(search_word, "gim");
var str_n = $('body').text();
var spn_str = "<mark>" + search_word + "</mark>";
//var res = str_n.match(s_reg);
if (search_word == null || search_word == "") {
//if empty input clean mark tag
alert("No input");
$("body").html($("body").html().replace(/<mark>/gi, ''));
$("body").html($("body").html().replace(/<\/mark>/gi, ''));
} else {
//clean previous searches
$("body").html($("body").html().replace(/<mark>/gi, ''));
$("body").html($("body").html().replace(/<\/mark>/gi, ''));
$("body").html($("body").html().replace(s_reg, spn_str));
};
}