JavaScript DOM 要素を追加、削除、変更する手順の詳細な説明
今回は、JavaScript を使用して DOM 要素を追加、削除、変更する手順について詳しく説明します JavaScript DOM 要素を追加、削除、変更するための 注意事項 とは何ですか。見て。
DOMの概念DOM (Document Object Model): ドキュメントオブジェクトモデル。
開発者ツールの「要素」タブから表示できます
開発者ツールの「ソース」タブからも、ドキュメント全体に一連のノードがあることを確認できます
ドキュメント全体は、一連のノードで構成されるツリーです。ノードオブジェクト。
ノード(Node)には要素ノード(1)、属性ノード(2)、テキストノード(3)が含まれます(1..2..3..はノードタイプを表します)_
var th1= document.getElementById("th1"); alert(th1.nodeType); alert(th1.nodeName); alert(th1.nodeValue);
th1は要素ノード(nodeType)を表します= 1)、nodeName はタグ名 (th)、nodeValue=null は要素ノードの値です。
var attr1=th1.getAttributeNode("name"); alert(attr1.nodeType); alert(attr1.nodeName); alert(attr1.nodeValue);
getAttributeNodeメソッドは要素の属性ノードを取得するもので、このとき出力されるノードタイプは属性ノード(2)、ノード名は属性名(name)、ノード値は属性値となります。 (性別)
var txtl = th1.firstChild; alert(txtl.nodeType); alert(txtl.nodeName); alert(txtl.nodeValue)
txt1 はテキストノード (3) で、ノード名は #text に固定され、ノード値はテキストの内容です。
要素の取得(1)
getElementByid要素のid属性に基づいて要素を取得し、取得するのは要素です。
(2)
getElementsByTagNameタグ名に基づいて要素を取得し、結果は要素のコレクションになります。
(3)
getElementsByClassNameclass 属性に基づいて要素を取得し、結果は要素のコレクションになります。
(4)
getElementsByNamename 属性に基づいて要素を取得し、結果は要素のコレクションになります。
概要:要素は、タグ名、または id、name、および class 属性に基づいて取得できます。 id 属性に基づいて取得される結果は要素であり、その他の結果はコレクションです。 ドキュメント オブジェクトは上記の 4 つのタイプをサポートしますが、要素オブジェクトは getElementsByTagName
と getElementsByClassName
のみをサポートします。
getElementsByTagName
和getElementsByClassName
。
修改元素
(1)修改内容
function fun(){ //获取到指定元素 var p1 = document.getElementById("p1"); p1.innerText = "我被单击了!"; }
通过.innerText属性可读取或设置标签的内容文本
function fun(){ //获取到指定元素 var p1 = document.getElementById("p1"); p1.innerHTML = "我被单击了!<br>换行了"; }
也可以通过innerHTML属性获取或设置内容文本
俩者的区别:innerHTML会按照HTML规则解析文本,而innerText只是当做普通文本内容。
(1) 修改样式
A.xxx.style.属性名=“值”
B.xxx.classname=“…”(相当于修改了class的属性)
<style> .style1{ color:red; font-size:20px; text-decoration:underline; } .style2{ color:blue; font-size:32px; text-decoration:line-through; } </style> </head> <body> <p id="p1">修改样式测试</p> <input type="button"value="样式一"onclick="style1()"> <input type="button"value="样式二"onclick="style2()"> </body> <script> var p1 = document.getElementById("p1"); function style1(){ p1.className = "style1" } function style2(){ p1.className = "style2" } </script> </html>
添加删除元素
(1)CreateElement建一个元素节点
CreateElement("p")
创建一个段落
(2)createTextNode创建一个文本节点
createTextNode("文本内容")
,创建一个值为“文本内容”的文本节点.
(3)appendChild添加子节点
(4)removeChild 删除子节点
动态添加
<body> <p id="p1"> </p> <input type="button"value="添加段落"onclick="add()"> </body> <script> //全局变量 var index = 1; function add(){ //创建一个段落标签 var p = document.createElement("p"); //创建文本节点 var content= "第"+index+"段落"; var txt = document.createTextNode(content); //创建文本节点添加的段落 p.appendChild(txt); //将段落添加到p中 var p1 = document.getElementById("p1"); p1.appendChild(p); index++ } </script>
动态删除
<body> <p id="p1"> <p id="p1">第1段落 </p> <p id="p2">第2段落 </p> <p id="p3">第3段落 </p> <p id="p4">第4段落 </p> </p> <input type="button"value="删除第二段"onclick="del()"> </body> <script> function del(){ //先找到父节点 var p1 = document.getElementById("p1"); //再找到要删除的节点 var p2 = document.getElementById("p2"); //将要删除的节点从父节点中移除 p1.removeChild(p2); } </script> </html>
这种方法是分别找到父节点和要删除的节点,然后执行删除操作。该方法的一个前提是知道父节点是谁
那么如果并不知道父节点是谁,该如何删除呢
p2.parentNode.removeChild(p2);
要素を変更する
function del(){ var p1 = document.getElementById("p1"); var paras = p1.getElementsByTagName("p"); for(var i in paras){ if((i+1)%2 == 1){ p1.removeChild(paras[i]); } } }
<body> <p id="p1"> </p> <input type="button" value="添加段落" onclick="add()"> <input type="button" value="删除奇数第二段" onclick="de1()"> </body> <script> var index = 1; function add(){ //创建一个段落标签 var p = document.createElement("p"); //创建文本节点 var content = "第" + index + "段落"; var txt = document.createTextNode(content); //将文本节点添加到段落 p.appendChild(txt); if (index % 2 == 1) { p.setAttribute("class","odd"); } //将段落添加到p中 var p1 = document.getElementById("p1"); p1.appendChild(p); index++; } /*function de1(){ var p1 = document.getElementById("p1"); var paras =p1.getElementsByTagName("p"); for(var i in paras){ if((i+1)%2 == 1){ p1.removeChild(paras[i]); } } }*/ functionde1() { var p1 = document.getElementById("p1"); var paras = p1.getElementsByClassName("odd"); // varparas = document.getElementsByName("odd"); for (var i = paras.length - 1; i >= 0; i--) { p1.removeChild(paras[i]); } } </script> </html>
</head> <body> <p name="第一章"> <p id="p1">第一段<span>第一句</span><span>第二句</span></p> </p> <input type="button"value="获取父节点的name属性"onclick="fun1()"> <input type="button"value="显示p1子节点的个数"onclick="fun2()"> <input type="button"value="显示p1第一个子节点的类型"onclick="fun3()"> <input type="button"value="显示p1最后一个子节点的类型"onclick="fun4()"> </body> <script> var p1 =document.getElementById("p1"); function fun1(){ var value=p1.parentNode.getAttribute("name"); alert(value); } function fun2(){ var chlids = p1.childNodes; alert(chlids.length) } function fun3(){ alert(p1.firstChild.nodeType); } function fun4(){ alert(p1.lastChild.nodeType); } </script> </html>
CreateElement("p") code>段落を作成します🎜🎜(2)🎜createTextNode🎜テキストノードを作成します🎜🎜createTextNode("text content")
、値「text content」を持つテキストノードを作成します🎜🎜(3) )🎜appendChild 🎜子ノードを追加🎜🎜(4)🎜removeChild 🎜子ノードを削除🎜🎜🎜動的追加🎜🎜rrreee🎜🎜動的削除🎜🎜rrreee🎜 このメソッドは、親ノードと削除するノードをそれぞれ見つけるためのもので、削除操作を実行します。この方法の前提条件は、親ノードが誰であるかを知ることです。したがって、親ノードが誰であるかを知る必要はありません🎜🎜🎜 動的追加と削除:🎜 🎜动态添加和动态删除,删除动态添加的奇数段落
思路1:获取p1 下的所以段落,遍历所以的段落,将序号为奇数的段落删除。
function del(){
var p1 = document.getElementById("p1");
var paras = p1.getElementsByTagName("p");
for(var i in paras){
if((i+1)%2 == 1){
p1.removeChild(paras[i]);
}
}
}
ログイン後にコピーログイン後にコピー
这种在初始时是可以的,但是随着动态添加或删除的进行,后面的结果就不对了。因为动态删除操作就影响了原来的顺序,而程序是按照序号去判断奇偶性,所以出现误判
思路2:添加通过设置class属性,然后通过getElementsByclassName来获取奇数行
(也可以从后往前删)
<body>
<p id="p1">
</p>
<input type="button" value="添加段落" onclick="add()">
<input type="button" value="删除奇数第二段" onclick="de1()">
</body>
<script>
var index = 1;
function add(){
//创建一个段落标签
var p = document.createElement("p");
//创建文本节点
var content = "第" + index + "段落";
var txt = document.createTextNode(content);
//将文本节点添加到段落
p.appendChild(txt);
if (index % 2 == 1) {
p.setAttribute("class","odd");
}
//将段落添加到p中
var p1 = document.getElementById("p1");
p1.appendChild(p);
index++;
}
/*function de1(){
var p1 = document.getElementById("p1");
var paras =p1.getElementsByTagName("p");
for(var i in paras){
if((i+1)%2 == 1){
p1.removeChild(paras[i]);
}
}
}*/
functionde1() {
var p1 = document.getElementById("p1");
var paras = p1.getElementsByClassName("odd");
// varparas = document.getElementsByName("odd");
for (var i = paras.length - 1; i >= 0; i--) {
p1.removeChild(paras[i]);
}
}
</script>
</html>
ログイン後にコピーログイン後にコピー
导航
Document:是根节点
ParentNode:获取父节点
childNodes:获取所有子节点
firstChild:第一个子节点
lastChlid:获取最后一个子节点
</head>
<body>
<p name="第一章">
<p id="p1">第一段<span>第一句</span><span>第二句</span></p>
</p>
<input type="button"value="获取父节点的name属性"onclick="fun1()">
<input type="button"value="显示p1子节点的个数"onclick="fun2()">
<input type="button"value="显示p1第一个子节点的类型"onclick="fun3()">
<input type="button"value="显示p1最后一个子节点的类型"onclick="fun4()">
</body>
<script>
var p1 =document.getElementById("p1");
function fun1(){
var value=p1.parentNode.getAttribute("name");
alert(value);
}
function fun2(){
var chlids = p1.childNodes;
alert(chlids.length)
}
function fun3(){
alert(p1.firstChild.nodeType);
}
function fun4(){
alert(p1.lastChild.nodeType);
}
</script>
</html>
ログイン後にコピーログイン後にコピー
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
以上がJavaScript DOM 要素を追加、削除、変更する手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Windows オペレーティング システムは世界で最も人気のあるオペレーティング システムの 1 つであり、その新バージョン Win11 が大きな注目を集めています。 Win11 システムでは、管理者権限の取得は重要な操作であり、管理者権限を取得すると、ユーザーはシステム上でより多くの操作や設定を実行できるようになります。この記事では、Win11システムで管理者権限を取得する方法と、権限を効果的に管理する方法を詳しく紹介します。 Win11 システムでは、管理者権限はローカル管理者とドメイン管理者の 2 種類に分かれています。ローカル管理者はローカル コンピュータに対する完全な管理権限を持っています

顔の検出および認識テクノロジーは、すでに比較的成熟しており、広く使用されているテクノロジーです。現在、最も広く使用されているインターネット アプリケーション言語は JS ですが、Web フロントエンドでの顔検出と認識の実装には、バックエンドの顔認識と比較して利点と欠点があります。利点としては、ネットワーク インタラクションの削減とリアルタイム認識により、ユーザーの待ち時間が大幅に短縮され、ユーザー エクスペリエンスが向上することが挙げられます。欠点としては、モデル サイズによって制限されるため、精度も制限されることが挙げられます。 js を使用して Web 上に顔検出を実装するにはどうすればよいですか? Web 上で顔認識を実装するには、JavaScript、HTML、CSS、WebRTC など、関連するプログラミング言語とテクノロジに精通している必要があります。同時に、関連するコンピューター ビジョンと人工知能テクノロジーを習得する必要もあります。 Web 側の設計により、次の点に注意してください。

OracleSQL の除算演算の詳細な説明 OracleSQL では、除算演算は一般的かつ重要な数学演算であり、2 つの数値を除算した結果を計算するために使用されます。除算はデータベース問合せでよく使用されるため、OracleSQL での除算演算とその使用法を理解することは、データベース開発者にとって重要なスキルの 1 つです。この記事では、OracleSQL の除算演算に関する関連知識を詳細に説明し、読者の参考となる具体的なコード例を示します。 1. OracleSQL での除算演算

PHP のモジュロ演算子 (%) は、2 つの数値を除算した余りを取得するために使用されます。この記事では、モジュロ演算子の役割と使用法について詳しく説明し、読者の理解を深めるために具体的なコード例を示します。 1. モジュロ演算子の役割 数学では、整数を別の整数で割ると、商と余りが得られます。たとえば、10 を 3 で割ると、商は 3 になり、余りは 1 になります。モジュロ演算子は、この剰余を取得するために使用されます。 2. モジュロ演算子の使用法 PHP では、% 記号を使用してモジュロを表します。

Linux システム コール system() 関数の詳細説明 システム コールは、Linux オペレーティング システムの非常に重要な部分であり、システム カーネルと対話する方法を提供します。その中でも、system()関数はよく使われるシステムコール関数の一つです。この記事では、system() 関数の使用法を詳しく紹介し、対応するコード例を示します。システム コールの基本概念 システム コールは、ユーザー プログラムがオペレーティング システム カーネルと対話する方法です。ユーザープログラムはシステムコール関数を呼び出してオペレーティングシステムを要求します。

Linuxのcurlコマンドの詳細な説明 要約:curlは、サーバーとのデータ通信に使用される強力なコマンドラインツールです。この記事では、curl コマンドの基本的な使用法を紹介し、読者がコマンドをよりよく理解して適用できるように実際のコード例を示します。 1.カールとは何ですか? curl は、さまざまなネットワーク要求を送受信するために使用されるコマンド ライン ツールです。 HTTP、FTP、TELNETなどの複数のプロトコルをサポートし、ファイルアップロード、ファイルダウンロード、データ送信、プロキシなどの豊富な機能を提供します。

ソフトウェア開発の分野で広く使用されているプログラミング言語として、C 言語は多くの初心者プログラマーにとって最初の選択肢です。 C言語を学ぶと、プログラミングの基礎知識を定着させるだけでなく、問題解決能力や思考力も向上します。この記事では、初心者が学習プロセスをより適切に計画できるようにするための C 言語学習ロードマップを詳しく紹介します。 1. 基本的な文法を学ぶ C 言語の学習を始める前に、まず C 言語の基本的な文法規則を理解する必要があります。これには、変数とデータ型、演算子、制御ステートメント (if ステートメント、

js と vue の関係: 1. Web 開発の基礎としての JS、2. フロントエンド フレームワークとしての Vue.js の台頭、3. JS と Vue の補完関係、4. JS と Vue の実用化ビュー。
