03.JavaScript對DOM操作

JavaScript引入方式

外部引入

在head或者body中,添加以下代碼

<script  type="text/javascript" src="js/demo.js"></script>

內部引入

在head或body中,定義script標簽,然后在script標簽里面寫js代碼

 <script>alert("這是js的內部引入");</script>

DOM

DOM是什么

DOM(Document Object Model)是一套對文檔的內容進行抽象和概念化的方法。?

當網頁被加載時,瀏覽器會創建頁面的文檔對象模型(Document Object Model)。

HTML DOM 模型被構造為對象的樹

HTML DOM 樹

JS操作DOM類似對xml文件操作。

DOM標準規定HTML文檔中的每個成分都是一個節點(node):

  • 文檔節點(document對象):代表整個文檔
  • 元素節點(element 對象):代表一個元素(標簽)
  • 文本節點(text對象):代表元素(標簽)中的文本
  • 屬性節點(attribute對象):代表一個屬性,元素(標簽)才有屬性
  • 注釋是注釋節點(comment對象) 

JavaScript 可以通過DOM創建動態的 HTML:

  • JavaScript 能夠改變頁面中的所有 HTML 元素
  • JavaScript 能夠改變頁面中的所有 HTML 屬性
  • JavaScript 能夠改變頁面中的所有 CSS 樣式
  • JavaScript 能夠對頁面中的所有事件做出反應

?

查找標簽

直接查找

document.getElementById           根據ID獲取一個標簽
document.getElementsByClassName   根據class屬性獲取
document.getElementsByTagName     根據標簽名獲取標簽合集

注意:

涉及到DOM操作的JS代碼應該放在文檔的哪個位置。

間接查找

parentElement            父節點標簽元素
children                 所有子標簽
firstElementChild        第一個子標簽元素
lastElementChild         最后一個子標簽元素
nextElementSibling       下一個兄弟標簽元素
previousElementSibling   上一個兄弟標簽元素

節點操作

創建節點

var divEle = document.createElement("div");

添加節點

語法:

追加一個子節點(作為最后的子節點)

somenode.appendChild(newnode);

把增加的節點放到某個節點的前邊。

somenode.insertBefore(newnode,某個節點);

示例:

var imgEle=document.createElement("img");
imgEle.setAttribute("src", "http://image11.m1905.cn/uploadfile/s2010/0205/20100205083613178.jpg");
var d1Ele = document.getElementById("d1");
d1Ele.appendChild(imgEle);

刪除節點:

語法:

獲得要刪除的元素,通過父元素調用該方法刪除。

somenode.removeChild(要刪除的節點)

替換節點:

語法:

somenode.replaceChild(newnode, 某個節點);

屬性節點

獲取文本節點的值:

var divEle = document.getElementById("d1")
divEle.innerText
divEle.innerHTML

設置文本節點的值:

var divEle = document.getElementById("d1")
divEle.innerText="1"
divEle.innerHTML="<p>2</p>"

attribute操作

var divEle = document.getElementById("d1");
divEle.setAttribute("age","18")
divEle.getAttribute("age")
divEle.removeAttribute("age")// 自帶的屬性還可以直接.屬性名來獲取和設置
imgEle.src
imgEle.src="..."

獲取值操作

語法:

elementNode.value

適用于以下標簽:

  • .input? ?
  • .select
  • .textarea?
var iEle = document.getElementById("i1");
console.log(iEle.value);
var sEle = document.getElementById("s1");
console.log(sEle.value);
var tEle = document.getElementById("t1");
console.log(tEle.value);

class的操作

className  獲取所有樣式類名(字符串)classList.remove(cls)  刪除指定類
classList.add(cls)  添加類
classList.contains(cls)  存在返回true,否則返回false
classList.toggle(cls)  存在就刪除,否則添加

指定CSS操作

obj.style.backgroundColor="red"

JS操作CSS屬性的規律:

1.對于沒有中橫線的CSS屬性一般直接使用style.屬性名即可。如:

obj.style.margin
obj.style.width
obj.style.left
obj.style.position

2.對含有中橫線的CSS屬性,將中橫線后面的第一個字母換成大寫即可。如:

obj.style.marginTop
obj.style.borderLeftWidth
obj.style.zIndex

事件

HTML 4.0 的新特性之一是有能力使 HTML 事件觸發瀏覽器中的動作(action),比如當用戶點擊某個 HTML 元素時啟動一段 JavaScript。下面是一個屬性列表,這些屬性可插入 HTML 標簽來定義事件動作。

常用事件

?

onclick        當用戶點擊某個對象時調用的事件句柄。
ondblclick     當用戶雙擊某個對象時調用的事件句柄。onfocus        元素獲得焦點。               // 練習:輸入框
onblur         元素失去焦點。               應用場景:用于表單驗證,用戶離開某個輸入框時,代表已經輸入完了,我們可以對它進行驗證.
onchange       域的內容被改變。             應用場景:通常用于表單元素,當元素內容被改變時觸發.(select聯動)onkeydown      某個鍵盤按鍵被按下。          應用場景: 當用戶在最后一個輸入框按下回車按鍵時,表單提交.
onkeypress     某個鍵盤按鍵被按下并松開。
onkeyup        某個鍵盤按鍵被松開。
onload         一張頁面或一幅圖像完成加載。
onmousedown    鼠標按鈕被按下。
onmousemove    鼠標被移動。
onmouseout     鼠標從某元素移開。
onmouseover    鼠標移到某元素之上。onselect      在文本框中的文本被選中時發生。
onsubmit      確認按鈕被點擊,使用的對象是form。

?

?綁定方式:

方式一:

<div id="d1" onclick="changeColor(this);">點我</div>
<script>function changeColor(ths) {ths.style.backgroundColor="green";}
</script>

注意:

this是實參,表示觸發事件的當前元素。

函數定義過程中的ths為形參。

方式二:

?

<div id="d2">點我</div>
<script>var divEle2 = document.getElementById("d2");divEle2.onclick=function () {this.innerText="呵呵";}
</script>

?

摘抄自:https://www.cnblogs.com/liwenzhou/p/8011504.html

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

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

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

相關文章

kotlin的suspend對比csharp的asyncawait

協程的出現大大降低了異步編程的復雜度&#xff0c;可以讓我們像寫同步代碼一樣去寫異步代碼&#xff0c;如果沒有它&#xff0c;那么很多異步的代碼都是需要靠回調函數來一層層嵌套&#xff0c;這個在我之前的一篇有介紹 rxjava回調地獄-kotlin協程來幫忙本篇文章主要介紹kotl…

file協議 控制面板_如何在Windows File Explorer導航窗格中顯示控制面板和回收站

file協議 控制面板By default, the Windows File Explorer’s sidebar is divided into big categories like Quick Access, This PC, Network, and so on. But a quick setting change can make your navigation pane look a bit more like the traditional tree you’d see i…

hdu-2612-Find a way(廣搜,bfs)

Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet. Especially a good friend Merceki. Yifenfei’s home is at the countryside, but Merceki’s home is in the center of city.…

過濾器(Filter)

1 什么是過濾器 過濾器JavaWeb三大組件之一&#xff0c;它與Servlet很相似&#xff01;不它過濾器是用來攔截請求的&#xff0c;而不是處理請求的。 當用戶請求某個Servlet時&#xff0c;會先執行部署在這個請求上的Filter&#xff0c;如果Filter“放行”&#xff0c;那么會繼…

03-1.JavaScript基礎語法略寫/模版字符串

基礎語法 參考前端基礎之JavaScript - Q1mi - 博客園 略寫原因 由于后續主要用jQuery編寫&#xff0c;jQuery簡化編程。大概了解JavaScript語法即可。 jQuery是一個輕量級的、兼容多瀏覽器的JavaScript庫。jQuery使用戶能夠更方便地處理HTML Document、Events、實現動畫效果…

發布適用于 .NET 7 的 .NET MAUI

點擊上方藍字關注我們&#xff08;本文閱讀時間&#xff1a;6分鐘)我們在六個月前向您介紹了 .NET 多平臺應用程序 UI (MAUI)&#xff0c;現在我們很高興地宣布 .NET MAUI 在我們的下一個主要版本 .NET 7 中普遍可用。在此短的時間范圍內&#xff0c;我們在 .NET MAUI 中的主要…

bzoj3160(FFT+回文自動機)

題目描述 https://www.lydsy.com/JudgeOnline/problem.php?id3160 題解 先把問題轉化一下&#xff0c;我們要求的是非連續對稱回文子序列。 ans回文子序列數-回文子串數。 回文子串數可以用PAM或manachar求出來。 復習了一下PAM&#xff0c;用它求回文子串數和SAM一樣&#xf…

03:數據結構 棧、隊列、鏈表與數組

算法其他篇 目錄&#xff1a; 1.1 數據結構中的一些概念1.2 棧&#xff08;stack&#xff09;1.3 隊列1.4 鏈表1.5 python中字典對象實現原理1.6 數組1.1 數據結構中的一些概念 返回頂部 1、數據結構是什么 1、簡單來說&#xff0c;數據結果就是設計數據以何種方式存儲在計…

力登:以智能化管理提升數據中心服務能力成熟度

2017年2月28日&#xff0c;由全國信息技術標準化技術委員會信息技術服務分技術委員會指導的《信息技術服務數據中心服務能力成熟度模型》發布&#xff0c;在業界首次提出“數據中心服務能力成熟度”概念&#xff0c;使得數據中心的管理真正實現了數字化和持續優化&#xff0c;是…

基于.NET 7 的 WebTransport 實現雙向通信

Web Transport 簡介WebTransport 是一個新的 Web API&#xff0c;使用 HTTP/3 協議來支持雙向傳輸。它用于 Web 客戶端和 HTTP/3 服務器之間的雙向通信。它支持通過 不可靠的 Datagrams API 發送數據&#xff0c;也支持可靠的 Stream API 發送數據。因為 HTTP/3 使用了基于 UDP…

Django01: 安裝/基礎命令/設置筆記

安裝 按官網版本支持&#xff0c;現在比較適合使用1.11版本。 下載安裝命令 pip3 install django1.11.9 新建項目 django-admin startproject mysite 運行項目 python manage.py runserver 127.0.0.1:8000 運行相關 目錄介紹 mysite/ ├── manage.py # 管理文件 └…

JavaScript校驗網址

gistfile1.txt var linkUrl https://www.baidu.com if( typeof (linkUrl) ! undefined &amp;&amp; linkUrl ! ){var strRegex ^((https|http|ftp|rtsp|mms)?://) ?(([0-9a-z_!~*\().&amp;$%-]: )?[0-9a-z_!~*\().&amp;$%-])? //ftp的user (([0-9]{1,3}.)…

線上問題隨筆記錄數據庫連接池問題

修改方法 轉載于:https://www.cnblogs.com/lvgg/p/8581506.html

數據底座_體驗當今計算機的未來:通過智能底座將您的Galaxy S4變成PC

數據底座Have you ever thought that Smartphones these days are so advanced they could actually replace the PC in your everyday computing life? Today, we here at HTG will review using the Galaxy S4 with the “Smart Dock Multimedia Hub” as a PC replacement.…

如何實現 WPF 代碼查看器控件

如何實現 WPF 代碼查看器控件CodeViewer作者&#xff1a;WPFDevelopersOrg - 驚鏵原文鏈接[1]&#xff1a;https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用.NET40&#xff1b;Visual Studio 2019;代碼展示需要使用到AvalonEdit是基于WPF的代碼顯示控件&#xff0c;…

談大數據也談人工智能 郭為告訴你一個不一樣的神州控股

毋庸置疑&#xff0c;我們深處一個數據無處不在的時代&#xff0c;也就是大數據時代。作為中國智慧城市領導者的神州數碼控股有限公司&#xff08;以下簡稱“神州控股”&#xff09;近年來也在積極布局大數據&#xff0c;不過在神州控股董事局主席郭為看來&#xff0c;神州控股…

Django02: pycharm上配置django

1.setting導入 File-->Setting-->Project-->Project Interface 2.new project 新窗口 圖片畫錯 3.調試 點擊右上角調試

vue-cli中配置sass

https://www.cnblogs.com/rainheader/p/6505366.html轉載于:https://www.cnblogs.com/aidixie/p/10213997.html

php 常用函數

用到就記下來&#xff0c;持續更新......... __call(string $func_name, array args){}public方法不存在 調用此函數 通過pg_系列函數與Postgres 數據庫交互 note: php 取得對象的某一共有屬性&#xff0c;若不存在則 查看是否有get方法(魔術方法) 若有則取get方法的返回值&am…

dropbox_來自提示框:望遠鏡激光瞄準器,Dropbox桌面和Kindle剪輯轉換

dropboxOnce a week we round up some great reader tips and share them with everyone; this week we’re looking at telescope laser sights, syncing your desktop with Dropbox, and converting your Kindle Clippings file. 每周一次&#xff0c;我們收集一些很棒的讀者…