ホームページ > 記事 > ウェブフロントエンド > JavaScript の例を使用した HTML 要素の操作の詳細な説明
この記事では、javascript に関する関連知識を提供します。主に、操作対象の要素の取得方法、操作対象の要素の内容、プロパティ、スタイルなど、HTML 要素の操作に関連する問題を紹介します。 、など、皆さんの参考になれば幸いです。
#関連する推奨事項:1. 操作の要素を取得するドキュメント オブジェクトのメソッドとプロパティドキュメント オブジェクトには、要素を検索するためのメソッドがいくつか用意されています。これらのメソッドを使用すると、要素の ID、名前、クラス属性、およびタグ名に基づいて操作対象の要素を取得できます。
概要
document.getElementById() メソッドが指定された ID を持つ要素を返すことを除き、他のすべてのメソッドが返すのは要件を満たすコレクション。オブジェクトの 1 つを取得するには、添字を使用して取得できます。デフォルトでは 0 から始まります。 ドキュメント オブジェクトは、ドキュメント内の要素を取得するために使用できるいくつかのプロパティを提供します。たとえば、すべてのフォームタグ、イメージタグなどを取得します。 #ドキュメント オブジェクトの body 属性は、body 要素を返すために使用されます。ドキュメント オブジェクトのメソッドを通じて取得される操作要素とドキュメント オブジェクトのプロパティは、同じオブジェクトを表します。たとえば、document.getElementsByTagName(‘body’)[0] は document.body と同一です。
#HTML5 の新しいドキュメント オブジェクト メソッド
HTML5 では、操作を取得するのに便利な要素はドキュメントです。 querySelector() と querySelectorAll() という 2 つの新しいメソッドが追加されました。
querySelector() メソッドは、指定された要素または CSS セレクターに一致するドキュメント内の最初のオブジェクトへの参照を返すために使用されます。
#さらに、要素オブジェクトは、指定された要素の子要素を取得するための Children 属性も提供します。たとえば、上記の例では ul の子要素を取得します。
#要素オブジェクトの Children 属性もオブジェクトのコレクションを返します。オブジェクトの 1 つを取得したい場合は、次の方法でも取得する必要があります。デフォルトでは 0 から始まる添え字。
HTMLCollection オブジェクト: getElementsByClassName() メソッド、getElementsByTagName() メソッド、children 属性などを呼び出して返します。 document オブジェクトまたは Element オブジェクト オブジェクトのセット。
HTMLCollection オブジェクトは要素の操作に使用されます。
2. 要素の内容
JavaScript では、取得した要素の内容を操作したい場合、DOM を使用できます。提供されたプロパティとメソッドの実装。
#例
コードの実装
nbsp;html>
<meta>
<title>元素内容操作</title>
<p>
The first paragraph...
</p><p>
The second paragraph...
<a>third</a>
</p>
innerText 属性を使用すると、ブラウザの互換性の問題が発生する可能性があります。したがって、開発中は、innerHTML を使用して要素のテキスト コンテンツをできるだけ取得または設定することをお勧めします。また、innerHTML 属性と document.write() メソッドの間には、コンテンツの設定において一定の違いがあり、前者は指定された要素に作用するのに対し、後者は HTML ドキュメント ページ全体を再構築します。したがって、読者は開発中に実際のニーズに応じて適切な実装方法を選択する必要があります。
【事例】ボックスサイズの変更
#コード実装のアイデア:
① HTMLを記述し、pのサイズを設定します。 ② ユーザーのクリック数に基づいてボックスのサイズを変更します。
③ クリック数が奇数の場合はボックスが大きくなり、クリック数が偶数の場合はボックスが小さくなります。
コードの実装nbsp;html> <meta> <style> .box{width:50px;height:50px;background:#eee;margin:0 auto;} </style> <p></p> <script> var box = document.getElementById('box'); var i = 0; // 保存用户单击盒子的次数 box.onclick = function() { // 处理盒子的单击事件 ++i; if (i % 2) { // 单击次数为奇数,变大 this.style.width = '200px'; this.style.height = '200px'; this.innerHTML = '大'; } else { // 单击次数为偶数,变小 this.style.width = '50px'; this.style.height = '50px'; this.innerHTML = '小'; } }; </script>
3. 要素の属性
DOM では、JavaScript の取得、変更を容易にするために、 HTML 要素の関連属性は、操作の属性とメソッドを提供します。attributes 属性を使用して、HTML 要素のすべての属性とすべての属性の長さを取得します。 #例
コードの実装
nbsp;html> <meta> <title>元素属性操作</title> <style> .gray{background: #CCC;} #thick{font-weight: bolder;} </style> <p>test word.</p> <script> // 获取p元素 var ele = document.getElementsByTagName('p')[0]; // ① 输出当前ele的属性个数 console.log('未操作前属性个数:' + ele.attributes.length); // ② 为ele添加属性,并查看属性个数 ele.setAttribute('align', 'center'); ele.setAttribute('title', '测试文字'); ele.setAttribute('class', 'gray'); ele.setAttribute('id', 'thick'); ele.setAttribute('style', 'font-size:24px;border:1px solid green;'); console.log('添加属性后的属性个数:' + ele.attributes.length); // ③ 获取ele的style属性值 console.log('获取style属性值:' + ele.getAttribute('style')); // ④ 删除ele的style属性,并查看剩余属性情况 ele.removeAttribute('style'); console.log('查看所有属性:'); for (var i = 0; i < ele.attributes.length; ++i) { console.log(ele.attributes[i]); } </script>4 . 要素のスタイル
復習: 要素の属性の操作を通じてスタイルを変更します。
要素スタイルの構文: style.属性名。 要件: CSS スタイル名の水平ダッシュ「-」を削除し、英語の 2 番目の頭文字を大文字にする必要があります。
例: 背景色を設定するbackground-colorは、style属性操作でbackgroundColorに変更する必要があります。
#注意
CSS の float スタイルは、JavaScript の予約語と競合します。ブラウザが異なれば解決策も異なります。たとえば、IE9~11、Chrome、FireFoxでは「float」と「cssFloat」、Safariブラウザでは「float」、IE6~8では「styleFloat」が使用できます。
質問: 要素には複数のクラス セレクターを含めることができます。開発中にセレクター リストを操作するにはどうすればよいですか?
元の解決策: 要素オブジェクトの className 属性を使用して結果を取得し、取得された結果は文字型であり、実際の状況に応じて文字列を処理します。 HTML5 によって提供されるメソッド: 新しい classList (読み取り専用) 要素のクラス セレクター リスト。例: p 要素のクラス値が「box header navlist title」の場合、ヘッダーを削除するにはどうすればよいですか?
HTML5 ソリューション: p 要素 object.classList.toggle("header");例:
コード実装
nbsp;html>
<meta>
<title>classList的使用</title>
<style>
.bg{background:#ccc;}
.strong{font-size:24px;color:red;}
.smooth{height:30px;width:120px;border-radius:10px;}
</style>
<script> // 获取第2个li元素 var ele = document.getElementsByTagName('li')[1]; // 若li元素中没有strong类,则添加 if (!ele.classList.contains('strong')) { ele.classList.add('strong'); } // 若li元素中没有smooth类,则添加;若有删除 ele.classList.toggle('smooth'); console.log('添加与切换样式后:'); console.log(ele); </script>
<script>
ele.classList.remove('bg');
console.log('删除后:');
console.log(ele);
</script>
さらに、classList 属性は、他の多くの関連する操作メソッドとプロパティも提供します。
5. 【事例】タブバー切り替え効果
##コード実装のアイデア
:
① タブ バーの構造とスタイルのデザインを実現する HTML を記述します。クラスは current に等しく、現在表示されているタブを示します。デフォルトは a ラベルです。
② すべてのタグとそのタグに対応する表示内容を取得します。
nbsp;html> <meta> <title>标签栏切换效果</title> <style> .tab-box{width:383px;margin:10px;border:1px solid #ccc;border-top:2px solid #206F96;} .tab-head{height:31px;} .tab-head-p{width:95px;height:30px;float:left;border-bottom:1px solid #ccc;border-right:1px solid #ccc;background:#206F96;line-height:30px;text-align:center;cursor:pointer;color:#fff;} .tab-head .current{background:#fff;border-bottom:1px solid #fff;color:#000;} .tab-head-r{border-right:0;} .tab-body-p{display:none;margin:20px 10px;} .tab-body .current{display:block;} </style> <p> </p><p> </p><p>标签一</p> <p>标签二</p> <p>标签三</p> <p>标签四</p> <!--jkdjfk?--> <p> </p><p> 1 </p> <p> 2 </p> <p> 3 </p> <p> 4 </p> <script> // 获取标签栏的所有标签元素对象 var tabs = document.getElementsByClassName('tab-head-p'); // 获取标签栏的所有内容对象 var ps = document.getElementsByClassName('tab-body-p'); for (var i = 0; i < tabs.length; ++i) { // 遍历标签部分的元素对象 tabs[i].onmouseover = function() { // 为标签元素对象添加鼠标滑过事件 for (var i = 0; i < ps.length; ++i) { // 遍历标签栏的内容元素对象 if (tabs[i] == this) { // 显示当前鼠标滑过的li元素 ps[i].classList.add('current'); tabs[i].classList.add('current'); } else { // 隐藏其他li元素 ps[i].classList.remove('current'); tabs[i].classList.remove('current'); } } }; } </script>
相关推荐:javascript教程
以上がJavaScript の例を使用した HTML 要素の操作の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。