1. ホーム
  2. Web制作
  3. HTML/Xhtml

htmlページ内の関数を検索する

2022-01-08 19:39:41

最近、多くの人がフレームワークを変更するに従事し、めまいの頭を見るために毎日コードを見て、しかし、進捗状況はまだかなり大きいと感じ、彼らは背景が物事の異なるデータの範囲の2つのライブラリのフォアグラウンドを表示するように構成することができますが、また、非常に満足して、外に共有する日は、今日最初に機能を行うために数日を言うことはhtmlページ機能を見つけることである。

この関数は、主に文字を入力する検索ボックスで達成するために、前の後ろに次のボタンを押した後、自動的に特別なスタイルのマークとクエリ領域内の文字と一致します、あなたは順序で次のボタンを押すと一致する文字を参照し続けることができる後、別のスタイルで現在の一致する文字は、他の一致する文字と区別するためにです。

フォアグラウンド表示はこのような感じです。

画像

htmlはこんな感じです。

 <div class="container" style="z-index: 999" id="searchDiv">
        <div class="keyword-search">
            Search for.
            <input id="key" type="text" style="width: 200px;" placeholder="keyword" />
            <a href="javascript:void(0);" class="prev" onclick='wordSearch(1)'><i class="c-icon"></i& gt;</a>
            <a href="javascript:void(0);" class="next" onclick='wordSearch()'><i class="c-icon"></i& gt;</a>
        </div>
    </div>

スクリプトコードです。

{{コード

jqueryのメソッドを習得。

eq()セレクタ。セレクタは、指定されたインデックス値を持つ要素を選びます。例えば

  <script>//Search function
        var oldKey0 = "";
        var index0 = -1; var oldCount0 = 0;
        var newflag = 0;
        var currentLength = 0;
        function wordSearch(flg) {
            var key = $("#key").val(); //fetch the key value
            if (!key) {
                return; // exit if key is empty
            }
            getArray();
            focusNext(flg);
        }
        function focusNext(flg) {
            if (newflag == 0) {//If new search, index is cleared
                index0 = 0;
            }
            if (!flg) { if (oldCount0 !
                if (oldCount0 ! = 0) {//If there is still a search
                    if (index0 < oldCount0) {//left if not finished, go left
                        focusMove(index0);
                        index0++;
                    } else if (index0 == oldCount0) {//all gone
                        index0 = 0;
                        focusMove(index0);
                        index0++;
                    }
                    else {
                        index0 = 0;//not determined
                        focusMove(index0);
                        index0++;
                    }
                }
            } else {
                if (oldCount0 ! = 0) {//If there is still a search
                    if (index0 <= oldCount0 && index0 > 0) {///left if not done, go left
                        index0--;
                        focusMove(index0);
                    } else if (index0 == 0) {//all gone
                        index0 = oldCount0;
                        index0--
                        focusMove(index0);
                    }
                }
            }
        }
        function getArray() {
            newflag = 1;
            $(".contrast .result").removeClass("res");
            var key = $("#key").val(); //take the key value
            if (!key) {
                oldKey0 = "";
                return; // exit if key is empty
            }
            if (oldKey0 ! = key || $(".current").length ! = currentLength) {
                /                index0 = 0;
                var index = 0;
                $(".contrast .result").each(function () {
                    $(this).replaceWith($(this).html());
                });
                pos0 = new Array();
                if ($(".contrast-wrap").hasClass("current")) {
                    currentLength = $(".current").length;
                    $(".current .strict").each(function () {
                        $(this).html($(this).html().replace(new RegExp(key, "gm"), "<span id='result" + (index++) + "' class='result'& gt;" + key + "</span>")); // replace
                    });
                } else {
                    $(".contrast-wrap").addClass('current');
                    currentLength = $(".current").length;
                    $(".contrast").each(function () {
                        $(this).html($(this).html().replace(new RegExp(key, "gm"), "<span id='result" + (index++) + "' class='result'& gt;" + key + "</span>")); // replace
                    });
                }
                // $("#key").val(key);
                oldKey0 = key;
                // $(".contrast .result").each(function () {
                // $(this).parents('.contrast-wrap').addClass('current');
                // pos0.push($(this).offset().top);
                //});
                // pos0.push($(".contrast .result:eq(2)").offset().top - $(".contrast .result:eq(2)").parents(".contrast" ).offset().top);
                oldCount0 = $(".contrast .result").length;
                newflag = 0;
            }
        }
        function focusMove(index0) {
            $(".contrast .result:eq(" + index0 + ")").paints('.contrast-wrap').addClass('current');
            $(".contrast .result:eq("

Learned jquery methods.

eq() selector: The selector picks the element with the specified index value. For example. $(".contrast .result:eq(1)") , is to select the second element with the class name result in the class name contrast element.

parents() method: all parent elements of the element. $("p").parents('.contrast-wrap') All elements of the p element with class name contrast-wrap.

replace() method: replace the selected element with the specified html content, note that the elements of the selected element are replaced as well.

offset() method: returns or sets the offset (position) of the matched element relative to the document.

scrollTop() method: returns or sets the vertical position of the scrollbar of the matching element.

Summary

The above is the html page to complete the find function, I hope it will help you, if you have any questions please give me a message, I will promptly reply to everyone. I would like to thank you all for your support of the Script House website!

は、クラス名対比要素で、クラス名の結果を持つ2番目の要素を選択することです。

parents() メソッド:その要素のすべての親要素。 $(".contrast .result:eq(1)") p要素のうちクラス名がcontrast-wrapであるすべての要素。

replace() メソッド:選択された要素を指定された html 内容に置き換えます。選択された要素の要素も置き換えられることに注意してください。

offset() メソッド:マッチした要素のドキュメントからの相対的なオフセット(位置)を返すか設定します。

scrollTop() メソッド:マッチした要素のスクロールバーの垂直位置を返すか設定します。

概要

上記は検索機能を完成させるためのhtmlページです、お役に立てれば幸いです、もし何か質問があれば、私にメッセージをください、私は迅速に皆さんに返信します。これからもスクリプトハウスのウェブサイトをよろしくお願いします。