メッセージボードにメッセージを追加および削除するための JavaScript

メッセージボードにメッセージを追加および削除するための JavaScript

この記事では、JavaScript メッセージ ボードでメッセージを追加および削除する小さな例を詳細なコード分析とともに紹介しますが、データベース操作は含まれず、基礎となるコード実装のアイデアのみを分析します。

成果を達成する

コードインターフェースを実行:

追加するメッセージを入力してください: (最新のメッセージが一番上に表示されます)

メッセージを削除: (メッセージをクリックすると削除されます)

主な機能と効果を示します。HTML および CSS スタイルはここでは影響を受けません。JS コードを以下に示します。

<スクリプト>
        // 必要な要素オブジェクトを取得します。var text = document.querySelector('textarea');
        var btn = document.querySelector('ボタン');
        var ul = document.querySelector('ul');
        // イベントを登録します btn.onclick = function () { // クリック イベントを公開ボタンにバインドします if (text.value == '') { // text.value が空かどうか、つまりユーザーが入力したコンテンツがあるかどうかを判断します alert('空のコンテンツを公開することはできません!');
                false を返します。
            } else { // ユーザーが入力したコンテンツがある場合、そのコンテンツが取得され、作成された要素 li に割り当てられて表示されます // 1. 要素を作成します var li = document.createElement('li');
                li.innerHTML = text.value + "<a href='javascript:;' title='このメッセージを削除'>削除</a>"; // ユーザーが入力したコンテンツを、作成された li 要素に割り当て、その後のメッセージ削除のために末尾に a タグを追加します // 2. 要素を追加します // ul.appendChild(li); // この方法では、メッセージが後で表示されます ul.insertBefore(li, ul.children[0]); // 新しく追加されたメッセージを一番上に、つまり下から上の順序で表示します // 要素を削除します: 現在の a タグが配置されている li ノード、つまりその親要素を削除します var as = document.querySelectorAll('a');
                (var i = 0; i < as.length; i++) の場合 {
                    as[i].onclick = 関数(){
                        // 削除される li 要素は a の親要素、つまり this.parentNode です。
                        ul.removeChild(this.parentNode); // ul 内の li ノードを削除します。li は現在の a タグの親ノードなので、それらの関係に注意してください。}
                }
            }
            text.value = ''; // 最後に、別のメッセージを表示できるようにメッセージ入力ボックスの内容をクリアします}
</スクリプト>

コア知識:

ページに要素ノードを追加します。

2つのステップでページに新しい要素を追加します。1 . 要素を作成する。2. 要素を追加する

1. 要素を作成します: element.createElement('created element tag');
2. 要素を追加します: node.appendChild(child); // node は要素が追加される親要素で、child は作成された子要素です。注: この要素の追加方法は、配列の push メソッドに似ています。つまり、要素を追加して、指定された位置にノードを追加します: (主に、表示のために指定された要素の先頭に追加されます)
node.insertBefore(child, 指定された要素); // 「指定された要素」は、child が追加される前の要素を指します。「指定された要素」は、node の子要素でなければなりません。

ページ要素ノードを削除します。

node.removeChild(child); // node は親要素、child は node 内の子要素です

主な実装アイデア:ここでは、主にページにノードを追加する機能とノードを削除する機能を使用し、2 つの機能を異なるボタンにバインドします。たとえば、ノードを追加する機能は「公開」ボタンに与えられ、ノードを削除する機能は「削除」ボタンに与えられ、これにより、メッセージ ボード ケースの簡易バージョンが実現されます。詳細な分析を行うには、JS コードと詳細なコメントを組み合わせることをお勧めします。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JSがメッセージボード機能を実現
  • jsp メッセージ ボード ソース コード 3: jsp 初心者向け。
  • DOM 操作を使用して js でシンプルなメッセージ ボードを実装する方法
  • JS+CSSは、更新せずにコンテンツを表示できるメッセージボードインスタンスをシミュレートします。
  • JSでメッセージボード機能を実現【床効果表示】
  • js で実装された折りたたみ式メッセージボード (ソースコードのダウンロードあり)
  • jsp メッセージ ボード ソース コード 2: jsp 初心者向け。
  • 私のAjaxメッセージボードソースコード優れたアプリケーションjs
  • ReactJS と Python の Flask フレームワークを使用してメッセージ ボードを作成するコード例
  • jsp メッセージ ボード ソース コード 1: jsp 初心者向け。

<<:  mysql 簡単な操作例を表示

>>:  MySQL クロスデータベーストランザクション XA 操作の例

推薦する

Windows 10 でカスタムドメイン名をバインドするように Hexo と GitHub を構成する方法

Hexo は Windows 10 でカスタムドメイン名を GitHub にバインドしますまずドメイ...

Linux環境変数の設定に関する完全なガイド

Linux環境変数の設定ソフトウェアのインストールをカスタマイズする場合、多くの場合、環境変数を設定...

HTML埋め込みタグの使用方法と属性の詳細な説明

1. 基本的な文法コードをコピーコードは次のとおりです。埋め込み src=url注: 埋め込みはさま...

Dockerコンテナレイヤーの概念の詳細な説明

目次01 コンテナの一貫性02 レイヤーの概念03 レイヤードデザインの利点今日はコンテナ レイヤー...

MySQL 5.6 マスタースレーブエラー報告の実践記録

1. 問題の症状バージョン: MySQL 5.6、従来の binlog ファイルと pos 方式を使...

Vueはアンカー配置機能を実装します

この記事では、アンカー配置を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...

MySQL への接続時に発生する 1449 および 1045 例外の解決方法

MySQL への接続時に発生する 1449 および 1045 例外の解決方法 mysql 1449:...

タイムライン効果を実現するCSS3

最近、コンピューターの電源を入れたところ、Geek Academy が新規ユーザーに 1 か月の無料...

JavaScript 状態コンテナ Redux の詳細な説明

目次1. Reduxを選ぶ理由2. Reduxデータフロー3つの原則4. Reduxソースコード分析...

Dockerを使用してJenkinsをインストールする方法

目次1. イメージをプルする2. ローカルデータボリュームを作成する3. コンテナを作成する4. J...

MySQL 8.0.11 圧縮版のインストールチュートリアル

この記事では、MySQL 8.0.11のインストールチュートリアルを参考までに紹介します。具体的な内...

Vue は水の波紋効果のクリックフィードバック指示を実装します

目次水波効果実装を見てみましょう水の波紋のデフォルトスタイルをカスタマイズする水の波紋の位置と直径を...

docker を使用してコード サーバーをデプロイする方法

画像をプルする # docker pull codercom/code-server # Docke...

CSS3のwebkit-box-reflectを巧みに使用して、さまざまな動的効果を実現します。

かなり前の記事で、 -webkit-box-reflectプロパティについて説明しました。リフレクシ...

Linux システムで MySQL データベースにリモート接続する方法のチュートリアル

序文最近、職場でこの要件に遭遇し、リモート接続を確立するのに 1 時間以上かかりました。ローカル コ...