DOM操作2

一、API和WebAPI

  • ?API就是接口,就是通道,負責一個程序和其他軟件的溝通,本質是預先定義的函數。
  • Web API是網絡應用程序接口。包含了廣泛的功能,網絡應用通過API接口,可以實現存儲服務、消息服務、計算服務等能力,利用這些能力可以進行開發出強大功能的web應用。

二、DOM對象

  • ?通過DOM方式獲取的元素得到的對象
  • 頁面中最頂級的對象:document
  • 根元素:HTML標簽

三、總結獲取元素的方式

  • ?根據id屬性的值獲取元素,返回的是一個元素對象

document.getElementById("id屬性的值")
  • 根據標簽的名字獲取元素,返回的是一個偽數組,里面存儲了多個DOM對象

 document.getElementsByTagName("標簽名字")
  • 根據name的值獲取元素,返回的是一個偽數組,里面存儲了多個DOM對象

document.getElementsByName("name屬性的值")
  • 根據類樣式的名字來獲取元素,返回的一個偽數組,里面存儲了多個DOM對象

 document.getElementsByClassName("類樣式的名字")
  • 根據選擇器獲取元素,返回的是一個元素的對象

 document.querySelector("選擇器的名字")
  • 根據選擇器獲取元素,返回的是一個偽數組,里面存儲了多個DOM對象

document.querySelectorAll("選擇器的名字")

四、textcontent和innertext及其兼容性寫法

  • ?設置標簽中的文本內容,使用 textcontent 屬性,谷歌火狐支持,IE8不支持
  • 設置標簽中的文本內容,使用 innertext? 屬性,谷歌火狐,IE8支持,但是有些低版本的火狐瀏覽器不支持
  • 兼容性代碼寫寫法:(原理:如果屬性在瀏覽器不支持,這個屬性類型是 undefined
 <script>//設置任何任意的標簽中間的任意文本內容function setInnerTtext(element,text){if(typeof element.textContent=="undefined"){element.innerText=text;}else{element.textContent=text;}}//獲取任意標簽中間的文本內容function getInnerTtext(element){if(typeof element.textContent=="undefined"){return element.innerText;}else{return element.textContent;}}</script>

五、innerText和innerHTML的區別

  • innerText? 主要設置文本的內容的,設置標簽的內容是沒有標簽的效果的
  • innerHTML 可以設置文本的內容,也可以設置標簽內容,標簽可以呈現效果
  • innerText 可以獲取標簽中間的文本內容,獲取不到文本內容里包含的標簽
  • innerHTML 可以獲取標簽中間的文本內容,也可以獲取文本中包含的標簽
  • 所以推薦使用innerHTML

六、自定義屬性

  • HTML本身沒標簽中本身沒有這個屬性,程序員自己添加的,為了儲存數據
  • 獲取屬性用getAttribute("屬性名")-----如果html里寫了自定義的標簽或者已經設置
<input type="button" value="自定義" id="btn"><p new="20">獲取這個自定義屬性</p><p id="demo"></p><script>document.getElementById("btn").onclick=function(){var p=document.getElementsByTagName("p")[0];document.getElementById("demo").innerHTML=p.getAttribute("new");}</script>
  • 設置屬性用setAttribute(“名字”,“值”)-----通過js設置
  • 移除自定義屬性,用removeAttribute("屬性的名字")-----也可以移除不是自定義的自帶屬性
    <input type="button" value="設置" id="btn1"><input type="button" value="移除" id="btn2"><p>設置一個自定義屬性</p><p>xxxxxxxxxx</p><script>document.getElementById("btn1").onclick=function(){document.getElementsByTagName("p")[0].setAttribute("new","10");};document.getElementById("btn2").onclick=function(){document.getElementsByTagName("p")[0].removeAttribute("new");};</script>

七、直接通過document獲取元素

    <script>//1.獲取body
    console.log(document.body);//返回body標簽(元素)//2.獲取title
    console.log(document.title);//返回標簽中的值,即標題//3.獲取html
    console.log(document.documentElement);//返回html標簽(元素)</script>

八、案例

 <!-- 例1:點擊按鈕禁用文本框 --><input type="text" value="" id="txt"><input type="button" value="禁止使用文本框" id="btn"><script>document.getElementById("btn").onclick=function(){document.getElementById("txt").disabled=true;};</script>
<!-- 例2:點擊按鈕修改列表背景顏色 --><input type="button" value="背景顏色" id="btn"><ul id="uu"><li>要拿執著</li><li>讓我不低頭</li><li>更精彩的活</li><li>將命運打破</li></ul><script>document.getElementById("btn").onclick=function(){var liobj=document.getElementById("uu").getElementsByTagName("li");for(var i=0;i<liobj.length;i++){liobj[i].style.backgroundColor="yellow";}};</script>
<!-- 例3:阻止超鏈接跳轉 --><a href="http://www.baidu.com" id="ak">百度</a><script>document.getElementById("ak").onclick=function(){return false;}</script>
<!-- 例4:點擊小圖切換大圖 --><a href="big.png" id="ak"><img src="small.png" alt=""></a><br><img src="" alt="" id="big"><script>document.getElementById("ak").onclick=function(){document.getElementById("big").src=this.href;return false;};</script>
<!-- 例5:列表隔行變色 --><input type="button" value="隔行變色" id="btn"><ul id="uu"><li>要拿執著</li><li>讓我不低頭</li><li>更精彩的活</li><li>將命運打破</li></ul><script>document.getElementById("btn").onclick=function(){var liobj=document.getElementById("uu").getElementsByTagName("li");for(var i=0;i<liobj.length;i++){// if(i%2==0){//     liobj[i].style.backgroundColor="yellow";// }else{//     liobj[i].style.backgroundColor="red";// }
                liobj[i].style.backgroundColor=i%2==0?"yellow":"red";}};</script>
 <!-- 例6:列表高亮顯示,排他功能 --><ul id="uu"><li>要拿執著</li><li>讓我不低頭</li><li>更精彩的活</li><li>將命運打破</li></ul><script>//獲取所有的li標簽var liobj=document.getElementById("uu").getElementsByTagName("li");for(var i=0;i<liobj.length;i++){//為li標簽注冊鼠標進入事件
            liobj[i].onmousemove=function(){this.style.backgroundColor="yellow";}//為li標簽注冊鼠標離開事件
            liobj[i].onmouseout=function(){this.style.backgroundColor="";}}</script>
<!-- 例7: 根據name屬性值獲取元素 --><input type="button" value="顯示效果" id="btn"><br><input type="text" value="你好" name="name1"><br><input type="text" value="你好" name="name2"><br><input type="text" value="你好" name="name3"><br><input type="text" value="你好" name="name1"><br><input type="text" value="你好" name="name3"><br><input type="text" value="你好" name="name2"><br><input type="text" value="你好" name="name1"><script>document.getElementById("btn").onclick=function(){var inputs=document.getElementsByName("name1");for(var i=0;i<inputs.length;i++){inputs[i].value="我哈兒美好";}}</script>
<!-- 例8:根據類樣式的名字獲取元素 --><div class="cls">第一個div</div><div>第二個div</div><span>第一個span</span><br><span class="cls">第二個span</span><br><input type="button" value="顯示效果" id="btn"><script>document.getElementById("btn").onclick=function(){var clsobj=document.getElementsByClassName("cls");for(var i=0;i<clsobj.length;i++){clsobj[i].style.backgroundColor="yellow";}};</script>
 <!-- 例9:其他的獲取元素的方法 --><div class="dv">第一個div</div><div>第二個div</div><span>第一個span</span><br><span id="sp">第二個span</span><br><input type="button" value="顯示效果" id="btn"><script>document.getElementById("btn").onclick=function(){document.querySelector(".dv").style.backgroundColor="yellow";var spobj=document.querySelectorAll("#sp");for(var i=0;i<spobj.length;i++){spobj[i].style.backgroundColor="pink";}};</script>
<!-- 例10:div高亮顯示 -->
<style>
#dv{
width: 200px;
height: 200px;
background: rgb(161, 131, 131);
border: 10px solid rgb(161, 131, 131);
}
</style>
   <div id="dv"></div><script>document.getElementById("dv").onmouseover=function(){this.style.border="10px solid red";}document.getElementById("dv").onmouseout=function(){this.style.border="";}</script>
 <!-- 例11:模擬搜索框 --><input type="text" id="txt" value="請輸入關鍵字" style="color: gray"><script>document.getElementById("txt").onfocus=function(){if(this.value=="請輸入關鍵字"){this.value="";this.style.color="black";}};document.getElementById("txt").onblur=function(){if(this.value.length==0){this.value="請輸入關鍵字";this.style.color="gray";}}</script>
<!-- 例13:驗證文本框密碼長度 --><input type="text" value="" id="txt"><script>document.getElementById("txt").onblur=function( ){if(this.value.length>6&&this.value.length<10){this.style.backgroundColor="red";}else{this.style.backgroundColor="blue";}};</script>

?

轉載于:https://www.cnblogs.com/EricZLin/p/8966884.html

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

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

相關文章

浮動布局demo

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>浮動布局</title><style type"text/css">*{margin: 0;padding: 0;}header{height: 150px;background: yellow;}nav{height: 30px;background: green;…

UI行業發展預測 系列規劃的調整

我又雙叒叕拖更了&#xff0c;上一篇還是1月22號更新的&#xff0c;這都3月9號了……前面幾期把職業規劃、能力分析、幾個分析用的設計理論都寫完了&#xff0c;當然實際工作中用到的方法論不止上面這些&#xff0c;后續會接著學習&#xff1b;如果你的目標是一線團隊&#xff…

出現Press ENTER or type command to continue的原因

cd 然后 vim .vimrc 寫入 set nu 保存 退出轉載于:https://www.cnblogs.com/520qtf/p/8968441.html

基于Flask實現后臺權限管理系統 - 導言

網上有這樣一個段子&#xff0c;在評論語言好壞的時候&#xff0c;都會有人評論說PHP是世界上最好的語言&#xff0c;人生苦短我用Python&#xff0c;這里姑且不去評論語言的好壞&#xff0c;每一個語言存在都有它的價值&#xff0c;譬如C語言適合底層開發&#xff0c;整個Linu…

5-1 unittest框架使用

unittest是python的一個單元測試框架&#xff0c;內置的&#xff0c;不需要pip install 什么什么的。直接在py文件里面調用 import unittest。 他這個框架是怎么回事呢&#xff0c;他可以對數據初始化&#xff0c;然后執行測試&#xff08;里面有斷言功能就是判斷返回是否正確…

bzoj 4573: [Zjoi2016]大森林

Description 小Y家里有一個大森林&#xff0c;里面有n棵樹&#xff0c;編號從1到n。一開始這些樹都只是樹苗&#xff0c;只有一個節點&#xff0c;標號為1。這些樹 都有一個特殊的節點&#xff0c;我們稱之為生長節點&#xff0c;這些節點有生長出子節點的能力。小Y掌握了一種魔…

Unity3D在C#編程中的一些命名空間的引用及說明

System包含用于定義常用值和引用數據類型、事件和事件處理程序、接口、屬性和處理異常的基礎類和基類。其他類提供支持下列操作的服務&#xff1a;數據類型轉換&#xff0c;方法參數操作&#xff0c;數學計算&#xff0c;遠程和本地程序調用&#xff0c;應用程序環境管理以及對…

docker入門簡介

簡介docker(容器技術)是實現虛擬化技術的一種方案,通過利用linux中命名空間,控制組和聯合文件系統這個三個主要技術,來實現應用程序空間的隔離.通過對應用程序運行環境的封裝來生成鏡像并部署來實現跨平臺,一定程度上加快了服務交付的整體流程.這篇文章主要介紹docker的一些基本…

Highcharts 配置選項詳細說明

http://www.runoob.com/highcharts/highcharts-setting-detail.html 轉載于:https://www.cnblogs.com/mengfangui/p/8969121.html

linux下的啟停腳本

linux下的根據項目名稱&#xff0c;進行進程的啟停腳本 #!/bin/bashJAVA/usr/bin/java APP_HOME/opt/program/qa/wechat APP_NAMEprogramname.jar APP_PARAM"--spring.config.location${APP_HOME}/application.properties --logging.path${APP_HOME}"case $1 in star…

python 網頁爬取數據生成文字云圖

1. 需要的三個包&#xff1a; from wordcloud import WordCloud #詞云庫 import matplotlib.pyplot as plt #數學繪圖庫 import jieba; 2. 定義變量&#xff08;將對于的變量到一個全局的文件中&#xff09;&#xff1a; import re; pdurl_firsthttps://movie.do…

python---重點(設計模式)

前戲&#xff1a;設計模式簡介 設計模式是面向對象設計的解決方案&#xff0c;是復用性程序設計的經驗總結。&#xff08;與語言無關&#xff0c;任何語言都可以實現設計模式&#xff09; 設計模式根據使用目的的不同而分為創建型模式&#xff08;Creational Pattern&#xff0…

洛谷 題解 P2010 【回文日期】

因為有8個字符&#xff0c;所以可得出每一年只有一個回文日期。 因此只要判斷每一年就行了。 做法&#xff1a; 我們先把年倒過來&#xff0c;例如2018年就倒為8102&#xff0c;就得出8102就是回文日期的后四個字符&#xff0c;我們只要判斷一下有沒有這個月份和這個日期。 具體…

線程相關

1、啟動線程1.11 new Handler()形式new Handler(mContext.getMainLooper()).post(newOnekeyBindFrameActivity.NetworkThread());1.12new Handler().postDelayed(new StatusCheckLoginBindFrameThread(), IoTCultivatePlantConfig.START_ACTIVITY_POST_DELAYED);1.2 new Thread…

驗證Oracle收集統計信息參數granularity數據分析的力度

最近在學習Oracle的統計信息這一塊&#xff0c;收集統計信息的方法如下&#xff1a; DBMS_STATS.GATHER_TABLE_STATS (ownname VARCHAR2, ---所有者名字tabname VARCHAR2, ---表名partname VARCHAR2 DEFAULT NULL, ---要分析的分區名estimate_percent NUMBER DEFAULT NULL, …

Python之NumPy(axis=0 與axis=1)區分

Python之NumPy&#xff08;axis0 與axis1&#xff09;區分 轉載于:https://www.cnblogs.com/greatljg/p/10802392.html

Python Web開發:開發wsgi中間件

本文參考了&#xff1a; github.com/alanctkc/ws…Youtube : Creating WSGI Middleware上篇文章簡要提到&#xff1a;wsgi 規范中的 app 是一個可調用對象&#xff0c;可以通過嵌套調用的方式實現中間件的功能。這篇文章就來親自動手實現一下。 此文的重點在于 app 端&#xff…

20165320 第九周學習總結

主要內容&#xff1a; 1.URL類 URL類是java.net包中的一個重要的類&#xff0c;使用URL創建對象的應用程序稱為客戶端程序。URL 的構造方法&#xff1a;try { URL url new URL ("http://www.google.com"); } catch (MalformedURLException e) {System.out.println(&…

Python 函數的執行流程-函數遞歸-匿名函數-生成器

1 函數的執行流程函數的執行需要對函數進行壓棧的&#xff0c;什么是壓棧呢&#xff0c;簡而言之就是在函數執行時在棧中創建棧幀存放需要變量以及指針的意思。具體涉及的知識非常多&#xff0c;這里就已一個Python腳本簡單進行分析。當我們運行上面代碼時&#xff0c;它的執行…

python 課堂筆記-for語句

for i in range(10):print("----------",i)for j in range(10):print("world",j)if j> 5:break 轉載于:https://www.cnblogs.com/leon-zyl/p/7542466.html