Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.09.2023, 23:19
Кандидат Javascript-наук
Отправить личное сообщение для WebMachine Посмотреть профиль Найти все сообщения от WebMachine
 
Регистрация: 11.10.2016
Сообщений: 141

Как выделить искомый запрос в результатах поиска
Здравствуйте.
Хочу выделить искомый запрос в результатах поиска жирным шрифтом.
На данный момент написал:
<script>
document.addEventListener("DOMContentLoaded", () => {
   let searchinput = document.querySelector('#searchinput').value;
   let fullpage = document.querySelector('#fullpage').toString();
   // fullpage.replace(searchinput, '<b>'+searchinput+'</b>');
   fullpage.split(searchinput).join('<b>'+searchinput+'</b>');
});
</script>


Подскажите что я делаю не так? В консоли ошибок нет.
Почему запрос в найденных результатах не выделяется?

Последний раз редактировалось WebMachine, 17.09.2023 в 03:23.
Ответить с цитированием
  #2 (permalink)  
Старый 17.09.2023, 01:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

Сообщение от WebMachine
Почему запрос в найденных результатах не выделяется?
где строка которая выводит результат?
Ответить с цитированием
  #3 (permalink)  
Старый 17.09.2023, 01:16
Кандидат Javascript-наук
Отправить личное сообщение для WebMachine Посмотреть профиль Найти все сообщения от WebMachine
 
Регистрация: 11.10.2016
Сообщений: 141

Сообщение от рони Посмотреть сообщение
где строка которая выводит результат?
не понял вопроса

Последний раз редактировалось WebMachine, 17.09.2023 в 03:23.
Ответить с цитированием
  #4 (permalink)  
Старый 17.09.2023, 01:20
Кандидат Javascript-наук
Отправить личное сообщение для WebMachine Посмотреть профиль Найти все сообщения от WebMachine
 
Регистрация: 11.10.2016
Сообщений: 141

Сообщение от рони Посмотреть сообщение
где строка которая выводит результат?
Надо чтобы код подсвечивал найденный из input value текст, везде где только увидит его в результатах поиска

Последний раз редактировалось WebMachine, 17.09.2023 в 03:27.
Ответить с цитированием
  #5 (permalink)  
Старый 17.09.2023, 01:26
Кандидат Javascript-наук
Отправить личное сообщение для WebMachine Посмотреть профиль Найти все сообщения от WebMachine
 
Регистрация: 11.10.2016
Сообщений: 141

Сообщение от рони Посмотреть сообщение
где строка которая выводит результат?
HELP

Последний раз редактировалось WebMachine, 17.09.2023 в 03:27.
Ответить с цитированием
  #6 (permalink)  
Старый 17.09.2023, 02:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

WebMachine,
не могу помочь, но я говорил про что-то такое
out.innerHTML =  fullpage.replace(searchinput, '<b>'+searchinput+'</b>');
Ответить с цитированием
  #7 (permalink)  
Старый 17.09.2023, 03:02
Кандидат Javascript-наук
Отправить личное сообщение для WebMachine Посмотреть профиль Найти все сообщения от WebMachine
 
Регистрация: 11.10.2016
Сообщений: 141

Сообщение от рони Посмотреть сообщение
WebMachine,
не могу помочь, но я говорил про что-то такое
out.innerHTML =  fullpage.replace(searchinput, '<b>'+searchinput+'</b>');
Блин я не думаю что это на столько сложно. Надо просто подсвечивать введённое в input значение в тексте.
Ответить с цитированием
  #8 (permalink)  
Старый 17.09.2023, 03:21
Кандидат Javascript-наук
Отправить личное сообщение для WebMachine Посмотреть профиль Найти все сообщения от WebMachine
 
Регистрация: 11.10.2016
Сообщений: 141

Сообщение от рони Посмотреть сообщение
WebMachine,
не могу помочь, но я говорил про что-то такое
out.innerHTML =  fullpage.replace(searchinput, '<b>'+searchinput+'</b>');
Нашел решение но оно подсвечивает только первое найденное совпадение:
document.addEventListener("DOMContentLoaded", () => {
    let searchinput = document.querySelector('#searchinput').value;
    let newValue = '<b>' +searchinput+ '</b>';
    const elements = document.querySelectorAll('p.fullpage');
    elements.forEach((element) => {
        element.innerHTML = element.textContent.replace(searchinput, newValue);
    });
});

Последний раз редактировалось WebMachine, 17.09.2023 в 03:32.
Ответить с цитированием
  #9 (permalink)  
Старый 17.09.2023, 10:01
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Сообщение от WebMachine
element.innerHTML = element.textContent.replace(searchinput, newValue);
Используйте replaceAll вместо replace.
Ответить с цитированием
  #10 (permalink)  
Старый 17.09.2023, 12:17
Кандидат Javascript-наук
Отправить личное сообщение для WebMachine Посмотреть профиль Найти все сообщения от WebMachine
 
Регистрация: 11.10.2016
Сообщений: 141

Сообщение от voraa Посмотреть сообщение
Используйте replaceAll вместо replace.
Спасибо, а можете подсказать как объединить это:
document.addEventListener("DOMContentLoaded", () => {
    let searchinput = document.querySelector('#searchinput').value;
    let newValue = '<b>' +searchinput+ '</b>';
    const elements = document.querySelectorAll('.fulldesc');
    elements.forEach((element) => {
        element.innerHTML = element.textContent.replaceAll(searchinput, newValue);
    });
});

с этим: https://javascript.ru/forum/dom-wind...zav-konec.html

Последний раз редактировалось WebMachine, 17.09.2023 в 13:09.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правило составить условие для поиска по базе используя mongoose? CryNet Node.JS 10 28.03.2022 14:18
Как сделать сложный запрос rita Node.JS 1 21.04.2021 00:17
Как правильно прочитать запрос? gsdev99 Node.JS 3 30.06.2019 04:15
Как же правильно вызывать запрос Ajax в функции? izumov AJAX и COMET 2 18.05.2019 17:43
Как отправить запрос используя прокси kometa2015 Javascript под браузер 1 30.08.2015 09:05