国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

香港云服务器
服務器之家 - 編程語言 - JavaScript - js教程 - js實現類選擇器和name屬性選擇器的示例步驟

js實現類選擇器和name屬性選擇器的示例步驟

2022-01-19 15:09豫見陳公子 js教程

這篇文章主要介紹了js實現類選擇器和name屬性選擇器的示例步驟,幫助大家更好的理解和使用js,感興趣的朋友可以了解下

jQuery的出現,大大的提升了我們操作dom的效率,使得我們的開發更上一層樓,如jQuery的選擇器就是一個很強大的功能,它包含了類選擇器、id選擇器、屬性選擇器、元素選擇器、層級選擇器、內容篩選選擇器等等,很是方便快捷,并且這些選擇器的兼容性都很好,可以說操作dom使用jq選擇器一時爽,一直使用一直爽!只是,目前Vue、React、Angular三大框架的出現大大降低了JQuery的使用頻率,而且JQuery在操作dom和綁定數據時確實存在一定的性能問題和各種坑,但依舊不可抹殺jq在操作dom方面的強大存在!

說了JQuery這么多的牛逼之處,那么它的很多內部原理是如何實現的呢?今天就來簡單實現一個類似jQuery的類選擇器和name屬性選擇器。

類選擇器:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
function getElementsByClass(className) {
   var classArr = [];
   var tags = document.getElementsByTagName("*");
 
   for (var i = 0; i < tags.length; i++) {
    if (tags[i].nodeType == 1) {
     if (tags[i].getAttribute("class") == className) {
      classArr.push(tags[i]);
     }
    }
   }
   return classArr;
}

其實name屬性選擇器跟類選擇器一樣,只是判斷條件稍微變了一下而已:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function getElementsByName(name) {
   var nameArr = [];
   var num = 0;
   var tags = document.getElementsByTagName("*");
 
   for (var i = 0; i < tags.length; i++) {
    if (tags[i].nodeType == 1) {
     if (tags[i].getAttribute("name") == name) {
      nameArr.push(tags[i]);
     }
    }
   }
 
   return nameArr;
}

name屬性選擇器大多用在表單的操作方面。

以上代碼中有一個nodeType的屬性,它是用來判斷節點的類型,nodeType共有12個值,1代表節點元素,2代表屬性,3代表元素或屬性中的文本內容。這三個數值用的是比較多的,其他9個用的不多,想了解的話可以去看一下API。在這里,我們需要得到元素節點,所以就會判斷當前元素的nodeType是否為1。

再來貼一下用遞歸來實現獲取元素的所有子節點(含孫子節點):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/**
 * 遞歸獲取所有子節點
 *
 node代表想要獲取所有子節點的父節點
 
 type取值:
 1  Element         代表元素
 2  Attr          代表屬性
 3  Text          代表元素或屬性中的文本內容
 4  CDATASection      代表文檔中的 CDATA 部分(不會由解析器解析的文本)
 5  EntityReference     代表實體引用
 6  Entity         代表實體
 7  ProcessingInstruction  代表處理指令
 8  Comment         代表注釋
 9  Document        代表整個文檔(DOM 樹的根節點)
 10 DocumentType      向為文檔定義的實體提供接口
 11 DocumentFragment    代表輕量級的 Document 對象,能夠容納文檔的某個部分
 12 Notation        代表 DTD 中聲明的符號
*/
var allChildNodes = function (node, type) {
 // 1.創建全部節點的數組
 var allCN = [];
 
 // 2.遞歸獲取全部節點
 var getAllChildNodes = function (node, type, allCN) {
  // 獲取當前元素所有的子節點nodes
  var nodes = node.childNodes;
  // 獲取nodes的子節點
  for (var i = 0; i < nodes.length; i++) {
   var child = nodes[i];
   // 判斷是否為指定類型節點
   if (child.nodeType == type) {
    allCN.push(child);
   }
   getAllChildNodes(child, type, allCN);
  }
 }
 getAllChildNodes(node, type, allCN);
 // 3.返回全部節點的數組
 return allCN;
}
 
// 調用:
// 獲取body中全部節點
allChildNodes(document.querySelector('body'), 1);
 
//獲取body中全部純文本節點
allChildNodes(document.querySelector('body'), 3)

作者:小壞

出處:http://tnnyang.cnblogs.com

以上就是js實現類選擇器和name屬性選擇器的示例步驟的詳細內容,更多關于js實現類選擇器和name屬性選擇器的資料請關注服務器之家其它相關文章!

原文鏈接:https://www.cnblogs.com/tnnyang/p/11039058.html

延伸 · 閱讀

精彩推薦
  • js教程js實現有趣的倒計時效果

    js實現有趣的倒計時效果

    這篇文章主要為大家詳細介紹了js實現有趣的倒計時效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    搬磚大法4422022-01-04
  • js教程原生js實現自定義滾動條組件

    原生js實現自定義滾動條組件

    這篇文章主要為大家詳細介紹了原生js實現自定義滾動條組件的開發,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    蒲公英芽11422022-01-05
  • js教程Javascript實現打鼓效果

    Javascript實現打鼓效果

    這篇文章主要為大家詳細介紹了Javascript實現打鼓效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    qq_413093507472022-01-11
  • js教程js定時器出現第一次延遲的原因及解決方法

    js定時器出現第一次延遲的原因及解決方法

    在本篇文章里小編給大家整理的是一篇關于js定時器出現第一次延遲的原因及解決方法,對此有需要的朋友們可以學習下。...

    宋宋大人4972021-12-24
  • js教程JS removeAttribute()方法實現刪除元素的某個屬性

    JS removeAttribute()方法實現刪除元素的某個屬性

    這篇文章主要介紹了JS removeAttribute()方法實現刪除元素的某個屬性,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,...

    C語言中文網7762021-12-30
  • js教程js刪除對象中的某一個字段的方法實現

    js刪除對象中的某一個字段的方法實現

    這篇文章主要介紹了js刪除對象中的某一個字段的方法實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的...

    兔子零847342021-12-29
  • js教程JavaScript實現下拉列表

    JavaScript實現下拉列表

    這篇文章主要為大家詳細介紹了JavaScript實現下拉列表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    編程的牛牛11712022-01-05
  • js教程JS實現簡單抖動效果

    JS實現簡單抖動效果

    這篇文章給大家結束了通過js實現抖動效果,非常不錯,具有參考借鑒價值,感興趣的朋友參考下吧...

    catEatBird9142022-01-12
1279
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 最近韩国日本免费观看mv免费版 | 黄色小视频国产 | 免费级毛片 | 日本久久精品视频 | 国产一区精品电影 | 国产成人免费高清激情视频 | 一区二区av在线 | 国产99在线| 精品一区二区电影 | 四虎影| 欧美福利视频 | 欧美成人精品 | 精品国产一区二区三区久久久 | 亚洲精品久久久一区二区三区 | 免费国产一区 | 久久亚洲欧美日韩精品专区 | 亚洲激情在线播放 | 欧美日韩精品一区二区三区蜜桃 | a久久久| 色九九九| 巴西性猛交xxxx免费看久久久 | 亚洲综合区 | 秋霞成人 | 久久精品2 | 亚洲国产中文字幕 | 日韩片一区 | 羞羞网站在线观看 | 亚洲激情久久 | 亚洲高清色综合 | 欧美在线a | 欧美成人高清视频 | 国产黄色免费网站 | 国产日韩一区二区 | 成人黄色小视频 | 久久久久久久国产精品 | 日韩有码一区 | 成人免费一区二区三区视频软件 | 麻豆产精国品免费入口 | 北条麻妃一区二区三区在线观看 | 久久久av| 亚洲电影在线观看 |