[JavaScript] Notes Dom (1.2) ノードを横断するためのコレクション要素オブジェクトを取得します

4. コレクション内の要素オブジェクトを取得します。

ノード セットはノードのコレクションです (0 からインデックスが付けられます)

for または for...of ループを使用して、コレクション内の要素オブジェクトを反復処理し、そのプロパティとメソッドを操作します。

プロパティとメソッド 簡単な説明
長さ ノードコレクション内の要素オブジェクトの数
[n] または項目(n) インデックス n に対応する単一要素オブジェクトを返します。
//在if条件表达式中写出:orderCheckbox元素对象集合中的元素节点的个数大于0
if(orderCheckboxs.length>0) {
  // 使用普通的for循环迭代orderCheckboxs元素对象集合中的每个元素对象
  for(let i=0;i<orderCheckboxs.length;i++){
    // 在.前面用item(n)方式获取元素对象集合的元素对象。
    orderCheckboxs.item(i).checked= true;
    // 在.前面用[]方式获取元素对象集合的元素对象。
    orderCheckboxs[i].parentElement.className= 'item-selected';
  }
//用一下箭头函数哈
selectAll.onchange= (e) => {
  // 下面的语句是循环体,使用for…of循环迭代orderCheckboxs元素对象集合,循环变量是ele
  for(let ele of orderCheckboxs){
      ele.checked= e.target.checked;
      if(e.target.checked) {
        ele.parentElement.classList.add('item-selected');
      } else {
        ele.parentElement.classList.remove('item-selected');
      }
  }
};

一般に、for..of ループを使用することをお勧めします。

***** 要素オブジェクトのコレクションを取得するための次の 2 つの方法について学習します。
ドキュメント (または要素).getElementsByClassName('クラス値')

 class 属性が document fire 要素の子孫のパラメータであるすべての要素オブジェクトのコレクションを返します。パラメーターには、HTML 要素の class 属性の値 (つまり、クラス名) のみを指定できます。

 ドキュメント (または要素).getElementsByTagName('タグ名')

 ドキュメント内のすべての要素オブジェクトのコレクション、またはパラメータという名前のタグを持つ要素の子孫を返します。パラメータには、HTML 要素のタグ名のみを指定できます。

const orders= document.getElementsByClassName('order');
const input= document.getElementsByTagName('input');

5. ノードの横断

parentNode を除く空白テキスト ノードを子ノードとして扱います。見つからない場合は null を返します。

属性 説明する
親ノード 現在のノードの親ノードを返します。
第一子 現在のノードの最初の子ノードを返します。
最後の子 現在のノードの最後の子ノードを返します。
次へ兄弟 現在のノードの次の兄弟ノードを返します。
前の兄弟 現在のノードの前の兄弟ノードを返します

コード例:

<body>
<h1><a href="#">123</a></h1>
<h2>快捷支付</h2>
<div class="panel">
  <ul class="step">
    <li>开通</li>
    <li>下单</li>
  </ul>
</div>
<script>
const t= setInterval(() => {
    // 在赋值符右侧写出:通过遍历元素节点的方法获取curStep的上一个元素节点
    let lastStep=curStep.previousElementSibling ;
    // 在赋值符右侧写出:通过遍历元素节点的方法获取curStep的下一个元素节点
    let nextStep=curStep.nextElementSibling ;
</script>

6. 要素ノードの横断

要素オブジェクトの読み取り専用プロパティ。要素ノードのみをトラバースします (テキストなどのノードは無視します)。見つからない場合は null になります。

読み取り専用属性 説明する
親要素 要素の親要素ノードを返します。
最初の要素子 要素の最初の子要素ノードを返します。
lastElementChild 要素の最後の子要素ノードを返します。
次要素兄弟 要素の次の兄弟要素ノードを返します。
前の要素兄弟 要素の前の兄弟要素ノードを返します。

<body>
<h1><a href="#">123</a></h1>
<h2>快捷支付</h2>
<div class="panel">
  <ul class="step">
    <li>开通</li>
    <li>下单</li>
  </ul>
</div>

<script>
(() => {
  const step= document.querySelector('.step');
  // 在赋值符右侧写出:通过遍历元素节点的方法获取class为step的第1个子元素节点。
  let curStep=step.firstElementChild;

  const t= setInterval(() => {
    // 在赋值符右侧写出:通过遍历元素节点的方法获取curStep的上一个元素节点
    let lastStep=curStep.previousElementSibling ;
    // 在赋值符右侧写出:通过遍历元素节点的方法获取curStep的下一个元素节点
    let nextStep=curStep.nextElementSibling ;
</script>

おすすめ

転載: blog.csdn.net/qq_59294119/article/details/124670889