Поиск текста на сайте [закрыто]

Уважаемые члены,

Я разрабатываю сайт в чистом HTML с помощью одного шаблона.

В этом у меня есть одно текстовое поле [поиск] и кнопка Go.

Я хочу сделать операцию такой, чтобы когда кто-нибудь печатал определенный текст и нажимал кнопку «Перейти», он выделил текст на том веб-сайте, который соответствует этому тексту.

Как я могу это сделать?

Чем ты.

 vivek salve10 дек. 2012 г., 11:46
попробуй этоjavascripter.net/faq/searchin.htm
 Pankit Kapadia10 дек. 2012 г., 11:41
 Freelancer10 дек. 2012 г., 11:49
@viveksalve: хорошо. Чангал пример аахе. amrit_neo yanch ответ екада чек кара. Реализуете ли вы Шакель Ка?

Ответы на вопрос(3)

Решение Вопроса
$(document).ready(function(){
        $('#searchItem').keyup(function(){
            var name = $(this).val();
            var pattern = name.toLowerCase(); 
            var targetId = ""; 
            var divs = document.getElementsByClassName("item"); 

            $(document).find('.item').hide();

            $('.item').each(function(i){
                var para = divs[i].getElementsByTagName("p"); 
                var index = para[0].innerText.toLowerCase().indexOf(pattern); 
                if (index != -1) { 
                    $(this).show();
                }
            });
        }); 
    });
 shrutim01 июл. 2016 г., 02:33
Я не уверен, как это будет работать. Фактические HTML-теги не видны пользователю, но будут возвращены, если мы будем использовать это. Например: var position = document.documentElement.innerHTML.indexOf ('<p>'); вернет действительный индекс, но фактически не виден пользователю на веб-странице

Вы имеете в виду, что у вас есть одностраничный сайт? В этом случае весь контент уже загружен на страницу, и вы просто хотите выполнить поиск по нему. Вы можете сделать это довольно легко, используя Javascript и JQuery. Просто поймайте щелчок на кнопке и просмотрите DOM в поисках вашей строки, затем сделайте на ней купол (например, прокрутите до нужной точки или выделите ее).

Если у вас есть более одной страницы, это будет более сложным, так как вы нет весь ваш контент доступен на стороне клиента. В этом случае было бы лучше найти решение для поиска на стороне сервера.

Ты нет опубликовал, что у вас есть. Я думаю, это то, что вы упоминаете.

Проверь это. Я могу сделать это для вас, но вы должны сделать это в своих идеях

function highlightInElement(elementId, text){
var elementHtml = document.getElementById(elementId).innerHTML;
var tags = [];
var tagLocations= [];
var htmlTagRegEx = /{1}/;

//Strip the tags from the elementHtml and keep track of them
var htmlTag;
while(htmlTag = elementHtml.match(htmlTagRegEx)){
    tagLocations[tagLocations.length] = elementHtml.search(htmlTagRegEx);
    tags[tags.length] = htmlTag;
    elementHtml = elementHtml.replace(htmlTag, '');
}

//Search for the text in the stripped html
var textLocation = elementHtml.search(text);
if(textLocation){
    //Add the highlight
    var highlightHTMLStart = '<span class="highlight">';
    var highlightHTMLEnd = '</span>';
    elementHtml = elementHtml.replace(text, highlightHTMLStart + text + highlightHTMLEnd);

    //plug back in the HTML tags
    var textEndLocation = textLocation + text.length;
    for(i=tagLocations.length-1; i>=0; i--){
        var location = tagLocations[i];
        if(location > textEndLocation){
            location += highlightHTMLStart.length + highlightHTMLEnd.length;
        } else if(location > textLocation){
            location += highlightHTMLStart.length;
        }
        elementHtml = elementHtml.substring(0,location) + tags[i] + elementHtml.substring(location);
    }
}

//Update the html of the element
document.getElementById(elementId).innerHTML = elementHtml;
}

highlightInElement("fatDoggie","The dog is really really fat");

Эта скрипка была сделана, чтобы выделить набор текста, вместо этого вы должны получить переменную в поиске и поместить вhighlightInElement("Element","Var");

 Freelancer10 дек. 2012 г., 11:47
Да уж. Я точно хотел этого.jsfiddle.net/briguy37/JyL4J Спасибо за рекомендацию хорошего сайта
 Vivek Dragon10 дек. 2012 г., 11:45
Проверьте этот вопросstackoverflow.com/q/7339157/1716774
 Vivek Dragon10 дек. 2012 г., 11:49
Я рад помочь моему другу
 Magnus12 апр. 2018 г., 12:06
Извините за то, что поднял старый пост, но jsfiddle в посте больше не был доступен. Одна из проблем приведенного выше кода заключается в том, что он не перехватывает и не удаляет теги, такие как <тип кнопки = "Кнопка ">, Любые мысли о том, что регулярное выражение должно быть, чтобы захватить только полные теги?

Ваш ответ на вопрос