このリファレンスとJavaScriptのカスタムプロパティの詳細な説明

このリファレンスとJavaScriptのカスタムプロパティの詳細な説明

1. このキーワード

これは現在の要素を参照します

グローバル関数内のこれはウィンドウオブジェクトを指します

コード内にブラウザウィンドウオブジェクトに属するグローバル関数が宣言されており、これはブラウザウィンドウオブジェクトウィンドウを表します。

関数fn() {
	console.log(これ);
}
関数()

タグイベント属性のこれはウィンドウオブジェクトを指します

グローバル関数がタグ属性で呼び出される場合は、次のようになります。

<button onclick="fn()">クリックして試す</button>
関数fn() {
	console.log(これ)
}

このイベント属性関数は、現在の操作のラベルを指します。

タグオブジェクトの属性に関数が宣言されている場合、その関数はタグ属性に属し、関数内のthisは現在のタグオブジェクトを指します。

<button id="btn">クリックして試す</button>
var btn = document.getElementById('btn');
btn.onclick = 関数() {
	console.log(これを);
}

2. カスタム属性

フロントエンド Web ページの開発では、JavaScript 構文の操作は主にタグ オブジェクトです。特定の状況では、カスタム属性を設定してタグを操作する必要があります。

基本構文: 要素.属性名 = 属性値

var btn = document.getElementById('btn');
btn.index = 1;

3. 包括的なケース1:タブの実装

実装手順
1. まず静的ページのデザインを完成させます(HTMLとCSSのコードについては付録を参照)

2.まずページ要素を取得する

 var uli = document.querySelector('ul').querySelectorAll('li');
 var oli = document.querySelector('ol').querySelectorAll('li');

3. forループを通じて要素にクリックイベントを追加する

(var i = 0; i < uli.length; i++) の場合 {          
            uli[i].addEventListener('click', 関数() {   
               } )
        }

4. 要素にカスタム属性を追加し、対応するタブにインデックス番号を追加します。

  uli[i].インデックス = i;

クリック イベントに対応するスタイルを追加する (完全なコード)

(var i = 0; i < uli.length; i++) の場合 {
            uli[i].インデックス = i;
            uli[i].addEventListener('click', 関数() {
                (var j = 0; j < uli.length; j++) の場合 {
                    uli[j].className = '';
                    oli[j].className = '';
                }
                this.className = '現在の';
                oli[this.index].className = '現在の';
            })
        }

注意: この場合、クラス名を追加することで対応するタブの表示と非表示が切り替わります。要素に対応するクラス名を追加する前に、すべての要素のクラス名をクリアする必要があります。

付録

<スタイル>
        * {
            マージン: 0;
            パディング: 0;
            リストスタイル: なし;
        }
        。箱 {
            高さ: 250px;
            幅: 300ピクセル;
            境界線: 2px 実線;
        }
        ul {
            ディスプレイ: フレックス;
            コンテンツの両端揃え: スペースの間;
            背景: 赤;
            下境界線: 2px #ccc;
        }
        ul li {
            フロート: 左;
            幅: 100ピクセル;
            色: #fff;
            カーソル: ポインタ;
            高さ: 40px;
            行の高さ: 40px;
            テキスト配置: 中央;
        }
        ul li.current {
            border-bottom: 5px 緑の実線;
        }
        オルリ{
            マージン: 30px;
            表示: なし;
        }
        ol li.current {
            表示: ブロック;
        }
    </スタイル>
    <div class="box">
        <ul>
            <li class="current">最初のページ</li>
            <li>ページ 2</li>
            <li>ページ 3</li>
        </ul>
        <オル>
            <li class="current">私は最初のページです</li>
            <li>私は2ページ目です</li>
            <li>私は3ページ目です</li>
        </ol>
    </div>

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • JavaScript関数の詳細な説明これを指す問題
  • JavaScript プロトタイプオブジェクトの this ポイント問題の詳細な説明
  • JSの矢印関数におけるこのポイントの詳細な説明
  • JavaScriptのthisキーワードは

<<:  Alibaba Cloud ECS サーバーでポート 8080 を開く方法

>>:  MySQL自動シャットダウン問題への対処の実践記録

推薦する

Linux ログ内のキーワードとその前後の情報を検索する方法の例

日常業務では、ログを表示する必要がよくあります。たとえば、 tail コマンドを使用してログをリアル...

IDEA 2020.3.1 で Tomcat をデプロイし、最初の Web プロジェクトを作成するプロセスの詳細な説明

目次Tomcat の紹介Tomcat の展開Web プロジェクトの作成tomcatの設定プロジェクト...

Node-Redを使用してMySQLデータベースに接続する方法

Node-red をデータベース (mysql) に接続するには、まずコンピューターに MySQL ...

リンク内の href=# はどういう意味ですか?

現在のページへのリンク。 -------------------一般的な使用法は次のとおりです。 &...

CSS 画像アニメーション効果のサンプルコード(フォトフレーム)

この記事では、CSS 画像アニメーション効果(フォトフレーム)のサンプルコードを紹介し、皆さんと共有...

Firefox の CSS を使用してデータを盗む

0x00 はじめに数か月前、Firefox に脆弱性 (CVE-2019-17016) があること...

Centos 7にmysql5.7.24バイナリバージョンをインストールする方法と解決方法

MySQLバイナリのインストール方法mysqlをダウンロード参考: 1. パッケージを解凍する ta...

JavaScript es6 における var、let、const の違いの詳細な説明

まず、よくある質問は、ECMAScript と JavaScript の関係は何ですか? ECMAS...

DockerにTensorFlow環境を素早くインストールする方法

Docker に TensorFlow 環境をすばやくインストールし、TensorFlow を使用し...

Reactの親コンポーネントと子コンポーネント間のデータ転送の詳細な説明

目次1. 親コンポーネントが子コンポーネントにデータを渡す1.1. 親コンポーネントコード1.2. ...

モバイル署名機能を実装するJavaScript

この記事では、モバイル署名機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...

UCenter ホームサイトに統計コードを追加

UCenter Homeは、ComsenzがリリースしたSNSサイト構築システムです。最新バージョン...

Win7 64 ビット版に MySQL 5.7 をダウンロードしてインストールする際によくある問題の概要

1. 公式ウェブサイトからMySQLをダウンロードします。 これが私たちが探しているものです、win...

Dockerのクイックガイド

Docker は、安全で繰り返し可能な環境でソフトウェアを自動的にデプロイする方法を提供し、コンピュ...

WebプロジェクトのDockerデプロイメントの実装

前回の記事では、docker サービスをインストールしました。引き続き、Web プロジェクトのデプロ...