есть поиск, если мы вводим одно слово - хорошо, вводим 2 слова, которые находяться в span или за его пределами тоже работает хорошо, но когда мы вводим словосочитание которое находить в span и за его пределами перестает работать, проблема в том что span class="wrapper" удалять нельзя он должен оставаться всегда. Пример не работает если мы введем also used
html:
<input type="text" id="searchField">
<button id="btn">click</button>
<div>
<p>JavaScript is also<span class="wrapper"> used</span> in environments that are not Web-based, such as PDF documents, site-specific browsers, and desktop widgets. Newer and <span class="wrapper">faster</span> JavaScript virtual machines (VMs) and platforms built upon them have also increased the popularity of JavaScript </p>
</div>
рабочий вариант:
$("#btn").click(function() {
var input = $("#searchField").val();
if (input !== "") {
var search = $("#searchField").val().split(" ");
var pattern = new RegExp(input, 'gi');
$("div").each(function() {
$(this).html($(this).html().replace(pattern, "<span class='text'>" + input + "</span>"));
});
}
});
Второй вариант - идея чтобы искать по одному слову, но почему то не срабатывает
$(function() {
$("#btn").click(function() {
var input = $("#searchField").val();
if (input !== "") {
var search = $("#searchField").val().split(" ");
var pattern = new RegExp(search, 'gi');
search.forEach(function (word) {
console.log(search);
$("div").html($("div").html().replace(pattern, "<span class='text'>" + search + "</span>"));
});
}
});
});
css:
.text {
color: red;
}
через regExp не получаеться это сделать, но нашел как это сделать другим методом
<input type="text" id="search">
<input type="button" id="button" onmousedown="doSearch(document.getElementById('search').value)" value="Find">
js:
function doSearch(text) {
if (window.find && window.getSelection) {
document.designMode = "on";
var sel = window.getSelection();
sel.collapse(document.body, 0);
while (window.find(text)) {
document.execCommand("HiliteColor", false, "blue");
sel.collapseToEnd();
}
document.designMode = "off";
} else if (document.body.createTextRange) {
var textRange = document.body.createTextRange();
while (textRange.findText(text)) {
textRange.execCommand("BackColor", false, "blue");
textRange.collapse(false);
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Не получается добавить значение в массив, что делаю не так?
При обновлении страницы или переходом на неё через historyback(), содержимое прыгает в верх, а не остается на месте с сохранением истории, проблема...