JS_12 DOM

DOM 操作 HTML

DOM Document Object Model,文檔對象模型,用js操作文檔對象

[外鏈圖片轉存失敗(img-Dygj4uK9-1562680086020)(image/domtree.gif)]

  • 節點:構成網頁最基本的部分,網頁的每一部分都是一個節點
    • 文檔節點:
    • 元素節點:
    • 屬性節點:
    • 文本節點:
  • 事件:用戶與瀏覽器的交互行為
    • 操作事件的兩種辦法:
    • 在屬性中添加js代碼,高耦合,不推薦
    • 綁定事件響應函數
  • 文檔的加載: 自頂向下,讀一行,加載一行,所以dom應該寫在body最后面,或者用onload聲明整個頁面加載完后再執行
<script>window.onload = function(){// jsCode}
</script>

獲取元素節點

  • getElementById()
  • getElementsByName():返回類數組對象
  • getElementsByTagName():返回類數組對象
  • innerHTML;文本節點
  • innerText:文本節點,沒標簽

通過具體元素調用:

  • childNodes:所有子節點
  • firstChild:第一個子節點
  • lastChild:最后一個子節點
  • children:所有子元素
  • parentNode:獲取當前節點的父節點
  • previousSibling:前一個兄弟節點
  • nextSibling:后一個兄弟節點

**注意:**標簽間的空白也會被當成節點,可以使用一下幾個獲取子元素,但不兼容IE8及以下瀏覽器

  • firstElementChild:
  • lastElementChild:
  • previousElementSibling:前一個兄弟元素
  • nextElementSibling:后一個兄弟元素

操作元素節點

  • createElement(): 創建元素節點對象,傳入標簽名的字符串
  • createTextNode():創建文本節點對象,傳入文本
  • appendChild():向父節點添加一個子節點
  • insertBefore():在父節點的指定子節點前插一個新節點
fatherNode.insertBefore(childNode,newNode);
  • replaceChild():用新節點替換子節點
fatherNode.replaceChild(newNode,oldNode);
  • removeChild():刪除當前節點的指定子節點

完整版

屬性 / 方法描述
element.accessKey設置或返回元素的快捷鍵。
element.appendChild()向元素添加新的子節點,作為最后一個子節點。
element.attributes返回元素屬性的 NamedNodeMap。
element.childNodes返回元素子節點的 NodeList。
element.className設置或返回元素的 class 屬性。
element.clientHeight返回元素的可見高度。
element.clientWidth返回元素的可見寬度。
element.cloneNode()克隆元素。
element.compareDocumentPosition()比較兩個元素的文檔位置。
element.contentEditable設置或返回元素的文本方向。
element.dir設置或返回元素的內容是否可編輯。
element.firstChild返回元素的首個子。
element.getAttribute()返回元素節點的指定屬性值。
element.getAttributeNode()返回指定的屬性節點。
element.getElementsByTagName()返回擁有指定標簽名的所有子元素的集合。
element.getFeature()返回實現了指定特性的 API 的某個對象。
element.getUserData()返回關聯元素上鍵的對象。
element.hasAttribute()如果元素擁有指定屬性,則返回true,否則返回 false。
element.hasAttributes()如果元素擁有屬性,則返回 true,否則返回 false。
element.hasChildNodes()如果元素擁有子節點,則返回 true,否則 false。
element.id設置或返回元素的 id。
element.innerHTML設置或返回元素的內容。
element.insertBefore()在指定的已有的子節點之前插入新節點。
element.isContentEditable設置或返回元素的內容。
element.isDefaultNamespace()如果指定的 namespaceURI 是默認的,則返回 true,否則返回 false。
element.isEqualNode()檢查兩個元素是否相等。
element.isSameNode()檢查兩個元素是否是相同的節點。
element.isSupported()如果元素支持指定特性,則返回 true。
element.lang設置或返回元素的語言代碼。
element.lastChild返回元素的最后一個子元素。
element.namespaceURI返回元素的 namespace URI。
element.nextSibling返回位于相同節點樹層級的下一個節點。
element.nodeName返回元素的名稱。
element.nodeType返回元素的節點類型。
element.nodeValue設置或返回元素值。
element.normalize()合并元素中相鄰的文本節點,并移除空的文本節點。
element.offsetHeight返回元素的高度。
element.offsetWidth返回元素的寬度。
element.offsetLeft返回元素的水平偏移位置。
element.offsetParent返回元素的偏移容器。
element.offsetTop返回元素的垂直偏移位置。
element.ownerDocument返回元素的根元素(文檔對象)。
element.parentNode返回元素的父節點。
element.previousSibling返回位于相同節點樹層級的前一個元素。
element.removeAttribute()從元素中移除指定屬性。
element.removeAttributeNode()移除指定的屬性節點,并返回被移除的節點。
element.removeChild()從元素中移除子節點。
element.replaceChild()替換元素中的子節點。
element.scrollHeight返回元素的整體高度。
element.scrollLeft返回元素左邊緣與視圖之間的距離。
element.scrollTop返回元素上邊緣與視圖之間的距離。
element.scrollWidth返回元素的整體寬度。
element.setAttribute()把指定屬性設置或更改為指定值。
element.setAttributeNode()設置或更改指定屬性節點。
element.setIdAttribute()
element.setIdAttributeNode()
element.setUserData()把對象關聯到元素上的鍵。
element.style設置或返回元素的 style 屬性。
element.tabIndex設置或返回元素的 tab 鍵控制次序。
element.tagName返回元素的標簽名。
element.textContent設置或返回節點及其后代的文本內容。
element.title設置或返回元素的 title 屬性。
element.toString()把元素轉換為字符串。
nodelist.item()返回 NodeList 中位于指定下標的節點。
nodelist.length返回 NodeList 中的節點數。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457636.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457636.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457636.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

星星排序python_python中怎么實現星星排列

python中怎么實現星星排列&#xff1f;下面給大家帶來幾種排列陣型。星星陣型1def stars1(n):for i in range(1,n1):str "*"*iprint strif __name__ "__main__":stars1(5)星星陣型2def stars2(n):for i in range(1,n1):str **(n1-i)print strif __name_…

Kendo UI開發教程:Kendo UI模板概述

2019獨角獸企業重金招聘Python工程師標準>>> Kendo UI框架提供了一個易用&#xff0c;高性能的JavaScript模板引擎。通過模板可以創建一個HTML片段然后可以和JavaScript數據合并成最終的HTML元素。Kendo 模板側重于UI顯示&#xff0c;支持關鍵的模板功能&#xff0c…

JS_13原型與原型鏈

原型與原型鏈 原型 每一個函數都有一個屬性&#xff1a;prototype,默認指向object空對象&#xff0c;就是原型對象,原型對象有一個constructor屬性&#xff0c;指向函數對象每一個實例化對象都有一個屬性 proto ,默認指向構造函數的原型對象&#xff08;是構造函數原型對象的…

ajax數據保存及解析

1. $(#frmCam).serialize()&#xff1b;serialize() 方法通過序列化表單值&#xff0c;創建 URL 編碼文本字符串。 2.自動對應ID和值 window.camConfig [<%(camConfig) %>]; if (camConfig.length>0) { for(var property in cam…

python和revit_pyRevit系列教程1

有沒有人和我一樣&#xff0c;想要自己寫一些小功能來用(zhuang)用(bi)&#xff0c;但苦于C#太難學了&#xff0c;不得不作罷。話說感受過Python的美好&#xff0c;怎么能忍受C#的大括號&#xff01;畢竟人生苦短&#xff0c;我用Python&#xff01;好吧&#xff0c;我承認是我…

【leetcode】104. Maximum Depth of Binary Tree

1. 題目 Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 2. 思路 遞歸到左、右子樹的max值&#xff0c;1. 3. 代碼 /*** Definition for a binary tree …

JS_14 執行上下文與執行上下文棧

執行上下文和執行上下文棧 變量提升和函數提升 變量提升 所用使用var定義的變量&#xff0c;在程序運行前會被先定義&#xff0c;并賦初值為underfind&#xff0c;保存到其執行上下文中 函數提升 在調用函數&#xff0c;執行函數體之前&#xff0c;會先執行函數定義&#xff…

shell編程-變量

1.Bash用戶自定義變量 【局部變量】 【按數據存儲分類】&#xff1a;整型、浮點型、字符串型、日期型 【變量定義】&#xff1a;x5,y6,z$x$y56,m$(($x$y))11 【Bash變量默認都為字符串型&#xff0c;等號左右不可以有空格】 【變量疊加】&#xff1a;x"$x"123,x${x}3…

JS_15作用域與作用域鏈

作用域與作用域鏈 作用域 類別 全局作用域函數作用域塊作用域&#xff1a;Es6時出現&#xff0c;之前沒有 作用域與執行上下文 區別 創建時機不同 全局作用域外&#xff0c;每個函數都有自己的作用域&#xff0c;作用域在函數創建時就創建了&#xff0c;而不是在調用時全局執…

多線程調用同一個對象的方法_多線程之如何創建和使用線程

一、創建線程和使用線程方式1.1 繼承Thread讓線程類繼承自Thread類&#xff0c;然后重寫run()&#xff0c;把需要多線程調用的代碼放到run()中。但是需要開啟線程的時候不能調用run方法&#xff0c;而是需要調用start()方法。/*** 本類用于演示第一種實現多線程的方式*/ class…

struts2的namespace的問題

<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <inc…

JS_16閉包

閉包 什么是閉包 理解1&#xff1a;閉包是嵌套的內部函數理解2&#xff1a;閉包是包含被引用變量&#xff08;函數&#xff09;的對象 閉包產生的條件 函數嵌套子函數調用了父函數的數據父函數被調用了&#xff08;子函數不一定需要被調用&#xff0c;只需要執行函數定義即可&…

[Intel Edison開發板] 02、Edison開發板入門

一、前言 Start from the link: 開始學習的鏈接 上面鏈接是官網的教程&#xff0c;按照教程可以開發板入門&#xff1a; 其中第一步是了解開發板&#xff0c;涉及到如何組裝、如何連線、一些主要的接口簡單介紹等信息&#xff1b;第二步主要是介紹如何用官方提供的工具進行配置…

python apscheduler一次只有一個job_Python使用APScheduler實現定時任務過程解析

前言APScheduler是基于Quartz的一個Python定時任務框架。提供了基于日期、固定時間間隔以及crontab類型的任務&#xff0c;并且可以持久化任務。一、安裝APSchedulerpip install apscheduler二、基本概念APScheduler有四大組件&#xff1a;1、觸發器 triggers &#xff1a;觸發…

java web service簡單示例

http://www.iteye.com/topic/1135747 轉載于:https://www.cnblogs.com/fycct/p/5669420.html

shell統計指定目錄下所有文件類型及數量

#!/bin/bash#Synopsis:用于統計腳本當前所在目錄或者用戶指定目錄下的所有文件類型及數量#若直接運行腳本而不接任何命令行參數,則默認會統計腳本所在目錄下的文件#Date:2016/10#Author:Jian#Usage:sh fileStat.sh /path1 /path2testFile$(mktemp /tmp/testfile.XXX)#如果沒有指…

python cross val score_sklearn函數:cross_val_score(交叉驗證評分)

sklearn.model_selection.cross_val_score(estimator,X,yNone,*,groupsNone,scoringNone,cvNone,n_jobsNone,verbose0,fit_paramsNone,pre_dispatch2*n_jobs,error_scorenan)前面我們提到了4種分割數據集的方法&#xff0c;在分割完數據集后&#xff0c;我們訓練模型&#xff0…

JS_17 ES5,ES6

ES5 嚴格模式 定義方法 use strict特性&#xff1a; 必須使用var定義變量存在eval作用域禁止自定義函數中的this指向window對象不能有重名屬性 JSON對象 json.stringify(obj/arr):js對象轉換為json對象json.parse(str):json對象轉換為js對象 Object拓展 Object.create(p…

幾種純css布局的導航欄

1.垂直導航欄 頁面效果 <ul class"nav"><li><a href"home.htm">Home</a></li><li><a href"about.htm">About</a></li><li><a href"services.htm">Services</a&…

python中函數的參數傳遞(傳值還是傳引用)

函數的參數傳遞 函數參數傳遞有兩種方式&#xff0c;傳值和傳引用&#xff0c;傳值只是把變量的值復制一份給了實參&#xff0c;函數內部的操作不會改變函數外部變量的值&#xff0c;而傳引用傳遞的是外部變量的地址&#xff0c;函數內部直接操作函數外部變量的儲存空間&#…