ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript ナレッジ ポイントのコレクション: 要素とノードの取得

JavaScript ナレッジ ポイントのコレクション: 要素とノードの取得

WBOY
WBOY転載
2022-05-16 17:58:572450ブラウズ

この記事では、javascript に関する関連知識を提供します。主に、ID、クラス名、名前、タグ名による要素の取得、作成、削除など、要素とノードの取得に関する関連コンテンツを紹介します。ノードのクローン作成やその他の問題について、一緒に見ていきましょう。皆さんのお役に立てれば幸いです。

JavaScript ナレッジ ポイントのコレクション: 要素とノードの取得

[関連する推奨事項: JavaScript ビデオ チュートリアルWeb フロントエンド]

要素の取得

  • ID で取得 (getElementById)
  • 名前属性で取得 (getElementsByName)
  • タグ名で取得 () getElementsByTagName)
  • クラス名別 (getElementsByClassName)
  • セレクターによる要素の取得 (querySelector)
  • By選択 デバイスは要素のセットを取得します (querySelectorAll)
  • HTML を取得するメソッド (document.documentElement)
  • 本文を取得するメソッド (document .body)

1. ID で取得 (getElementById)

// 1 获取元素节点
    // 通过id的方式( 通过id查找元素,大小写敏感,如果有多个id只找到第一个)
    document.getElementById('p1');

  • コンテキスト文書でなければなりません。
  • パラメータを渡す必要があります。パラメータは文字列タイプであり、要素の ID を取得するために使用されます。
  • 戻り値は 1 つの要素のみを取得し、見つからない場合は null を返します。

2. クラス名による (getElementsByClassName)

    // 通过类名查找元素,多个类名用空格分隔,得到一个HTMLCollection(一个元素集合,有length属性,可以通过索引号访问里面的某一个元素)
    var cls = document.getElementsByClassName('a b');
    console.log(cls);
  • パラメータは要素のクラス名です。
  • 戻り値はクラス配列で、見つからない場合は空の配列が返されます

3. name 属性 (getElementsByName) を通じて

 // 通过name属性查找,返回一个NodeList(一个节点集合,有length属性,可以通过索引号访问)
   var nm =  document.getElementsByName('c');
    console.log(nm);

4. タグ名による (getElementsByTagName)

    // 通过标签名查找元素 返回一个HTMLCollection
    document.getElementsByTagName('p');
  • パラメータは要素のタグ名属性を取得するためのもので、大文字と小文字は区別されません。
  • 戻り値は配列のような配列で、見つからない場合は空の配列が返されます

5. セレクター (querySelector) を通じて要素を取得します

document.querySelector('.animated')
  • パラメータは、「p .className」などのセレクターです。
  • 単一のノードを返します。一致する要素が複数ある場合は、最初のノードを返します。

6. セレクター (querySelectorAll) を通じて要素のセットを取得します。
document.querySelector('.animated')

    戻り値はクラス配列です。
ノードを取得します。

ドキュメント オブジェクト モデル (DOM) では、各ノードはオブジェクトです。 DOM ノードには 3 つの重要な属性があります

1.nodeName: ノードの名前

2.nodeValue:ノードの名前 Value

3.nodeType: ノードのタイプ

1.nodeName 属性: ノードの名前。読み取り専用です。

    要素ノードのノード名はラベル名と同じです
  • 属性ノードのノード名は属性の名前です
  • テキスト ノードのノード名は常に #text
  • ドキュメント ノードのノード名は常に #document

2. nodeValue 属性: ノードの値

    要素ノードのnodeValueは未定義またはnullです
  • テキストノードのnodeValueはテキストそのものです
  • 属性ノードのnodeValueは値です属性の

#3.nodeType 属性: ノードのタイプ、読み取り専用です。一般的に使用されるノード タイプは次のとおりです。

    要素タイプ ノード タイプ
  • 要素 1
  • 属性 2
  • テキスト 3 スペースも返されます3
  • コメント 8
  • ドキュメント 9

ノードの作成:

1. ノードの作成: createElement('')

 // 创建元素,只是创建出来并未添加到html中,需要与appendChild 配合使用
    var elem = document.createElement('p');
    elem.id = 'test';
    elem.style = 'color: red';
    elem.innerHTML = '我是新创建的节点';
    document.body.appendChild(elem);

2. ノードの挿入: appendChild ()

使用法:parent.appendChild( child)
  • は子ノードを親の最後に追加します
  • 子ノードがすでに存在する場合、元のノードが削除され、新しいノードが最後に追加されますが、イベントは
 var oNewp=document.createElement("p");
      var oText=document.createTextNode("World Hello");
      oNewp.appendChild(oText);
  • のままになります 2-1. ノードの挿入: insertBefore()

    • 用法是 parent.insertBefore(newNode,refNode);
         var oOldp=document.body.getElementsByTagName("p")[0];
          document.body.insertBefore(oNewp,oOldp);

      删除节点

    1.删除节点:removeChild

    • 用法是:parent.removeChild(child) 
    • 如果删除的不是父元素的子节点会报错
       var op=document.body.getElementsByTagName("p")[0];
             op.parentNode.removeChild(op);

       克隆节点

    1.克隆节点:parent.cloneNode() false 或者true

    • 克隆节点(需要接受一个参数来表示是否复制元素)
      // 克隆节点(需要接受一个参数来表示是否复制元素)
        var form =  document.getElementById('test');
        var clone = form.cloneNode(true);
        clone.id = 'test2';
        document.body.appendChild(clone);

       替换节点

    1.替换节点 方法node.replace(new,old) 

           var oOldp=document.body.getElementsByTagName("p")[0];
           oOldp.parentNode.replaceChild(oNewp,oOldp);

      文档碎片框 

    • 作用:当向document中添加大量的节点时,如果逐个添加将会十分缓慢,这时可以使用文档碎片一次性添加到document中
    • 语法:document.createDocumentFragment();
    • 承载节点
     (function()
        {
            var start = Date.now();
            var str = '', li;
            var ul = document.getElementById('ul');
            var fragment = document.createDocumentFragment();
            for(var i=0; i<10000; i++)
            {
                li = document.createElement('li');
                li.textContent = '第'+i+'个子节点';
                fragment.appendChild(li);
            }
            ul.appendChild(fragment);
            console.log('耗时:'+(Date.now()-start)+'毫秒'); // 63毫秒
        })();

    【相关推荐:javascript视频教程web前端

    以上がJavaScript ナレッジ ポイントのコレクション: 要素とノードの取得の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

  • 声明:
    この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。