首頁  >  文章  >  web前端  >  JavaScript知識點整理之獲取元素與節點

JavaScript知識點整理之獲取元素與節點

WBOY
WBOY轉載
2022-05-16 17:58:572461瀏覽

本篇文章為大家帶來了關於javascript的相關知識,其中主要介紹了關於獲取元素和節點的相關內容,包括了透過id、類別名稱、name、標籤名稱來獲取元素,創建、刪除、克隆節點等問題,下面一起來看一下,希望對大家有幫助。

JavaScript知識點整理之獲取元素與節點

【相關推薦:javascript影片教學web前端

取得元素

  • 透過ID取得(getElementById
  • 透過name屬性(getElementsByName
  • 透過標籤名稱(getElementsByTagName
  • 透過類別名稱(getElementsByClassName
  • #透過選擇器取得一個元素(querySelector
  • #透過選擇器取得一組元素(querySelectorAll
  • 取得html的方法(document.documentElement
  • 取得body的方法(document .body

1.透過ID取得(getElementById)

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

  • 上下文必須是document。
  • 必須傳參數,參數是string類型,是取得元素的id。
  • 傳回值只取得到一個元素,沒有找到回傳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」。
  • 傳回單一node,如果有多個符合元素就回傳第一個

6.透過選擇器取得一組元素(querySelectorAll) 

document.querySelector('.animated')
  •  回傳值是一個類別數組

取得節點 

在文件物件模型(DOM) 中,每個節點都是物件。 DOM 節點有三個重要的屬性 

1. nodeName : 節點的名稱

##2. nodeValue :節點的值

3. nodeType :節點的型別

一、nodeName 屬性: 節點的名稱,是唯讀的。

    元素節點的nodeName 與標籤名稱相同
  • 屬性節點的nodeName 是屬性的名稱
  • 文字節點的nodeName 永遠是#text
  • 文檔節點的nodeName 永遠是#document

二、nodeValue 屬性:節點的值

    元素節點的nodeValue 是undefined或null
  • 文字節點的nodeValue 是文字本身
  • 屬性節點的nodeValue 是屬性的值

三、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)######會將child節點加入到parent裡的最###後面#########如果子節點原本就存在,會移除原節點,加入新節點到最後,但事件會保留######
 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中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除