中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

兗州住房與城鄉(xiāng)建設(shè)局網(wǎng)站企業(yè)網(wǎng)絡(luò)營銷方法

兗州住房與城鄉(xiāng)建設(shè)局網(wǎng)站,企業(yè)網(wǎng)絡(luò)營銷方法,免費咨詢心理醫(yī)生平臺,易語言怎么制作網(wǎng)站目錄 1.什么是Web API? 2.DOM和DOM樹 3.獲取元素 4.事件 5.操作元素 獲取/修改元素內(nèi)容 1.innerText 2. innerHTML 獲取/修改元素屬性 獲取/修改表單元素屬性 獲取/修改樣式屬性 1.修改內(nèi)聯(lián)樣式 2.修改元素應(yīng)用的CSS類名 6.操作節(jié)點 新增節(jié)點 刪除節(jié)點 7.案例…

目錄

1.什么是Web API?

2.DOM和DOM樹

3.獲取元素?

4.事件

5.操作元素

?獲取/修改元素內(nèi)容

1.innerText

2. innerHTML

獲取/修改元素屬性

獲取/修改表單元素屬性

獲取/修改樣式屬性

1.修改內(nèi)聯(lián)樣式

2.修改元素應(yīng)用的CSS類名

6.操作節(jié)點

新增節(jié)點

刪除節(jié)點

7.案例

1.網(wǎng)頁版猜數(shù)字?

2.表白墻


1.什么是Web API?

?之前學(xué)習(xí)的JS分為三個大的部分

ECMAScript: 基礎(chǔ)語法部分

DOM API: 操作頁面結(jié)構(gòu)

BOM API: 操作瀏覽器

(Web API就包含了了 DOM + BOM)

想要實現(xiàn)一個復(fù)雜的具有交互功能的頁面不能只靠基礎(chǔ)語法,還需要Web API?的支持

WebAPI是一個很具體的概念,特指DOM+BOM,本質(zhì)就是相當(dāng)于工具,一些函數(shù)/對象,能直接使用,提高開發(fā)的效率

2.DOM和DOM樹

DOM ,文檔對象模型.全稱為 Document Object Model,提供了一系列的函數(shù),讓我們可以操作網(wǎng)頁內(nèi)容,網(wǎng)頁結(jié)構(gòu),網(wǎng)頁樣式

一個頁面的結(jié)構(gòu)是一個樹形結(jié)構(gòu), 稱為 DOM 樹.

注意:

文檔: 一個頁面就是一個 文檔, 使用 document 表示

元素: 頁面中所有的標(biāo)簽都稱為 元素. 使用 element 表示

節(jié)點: 網(wǎng)頁中所有的內(nèi)容都可以稱為 節(jié)點(標(biāo)簽節(jié)點, 注釋節(jié)點, 文本節(jié)點, 屬性節(jié)點等). 使用 node 表示.

3.獲取元素?

之前幾種方式獲取元素的時候都比較麻煩,querySelector?能夠完全復(fù)用前面學(xué)過的 CSS 選擇 器知識, 達(dá)到更快捷更精準(zhǔn)的方式獲取到元素對象.

let element = document.querySelector(selectors);

注意:

selectors 包含一個或多個要匹配的選擇器的 DOM字符串 DOMString .?該字符串必須是有效的 CSS選擇器字符串;如果不是,則引發(fā) ''SYNTAX_ERR'' 異常

指定選擇器匹配的所有元素的列表,則應(yīng)該使用 querySelectorAll()

可以在任何元素上調(diào)用,不僅僅是 document,?調(diào)用這個方法的元素將作為本次查找的根元素

看一個示例

querySelector()

<body><div class="box">abc</div><div id="id">def</div><h3><span><input type="text"></span></h3><script>// .box 是類選擇器, #star 是 id 選擇器let elem1 = document.querySelector('.box');console.log(elem1);let elem2 = document.querySelector('#id');console.log(elem2);let elem3 = document.querySelector('h3 span input');console.log(elem3);</script>
</body>

?querySelectorAll()?

4.事件

事件就是針對用戶的操作進(jìn)行的一些響應(yīng),要能夠和用戶交互,就需要知道用戶做了什么操作,用戶做出的一系列操作,就會在瀏覽器中產(chǎn)生一些事件(鼠標(biāo)按下,雙擊,移動,鍵盤按下....),代碼針對事件作出反應(yīng)

事件三要素

事件源:明確那個元素產(chǎn)生的事件

事件類型:用戶進(jìn)行的什么操作,是鼠標(biāo)按下,移動還是別的..

事件處理程序:事件發(fā)生之后,針對事件要執(zhí)行的代碼

看一個示例

事件源:btn按鈕

事件類型:點擊

事件處理程序:function()

其中 btn.onclick = function() 這個操作稱為 注冊事件/綁定事件

這個function是一個匿名函數(shù),也是回調(diào)函數(shù),不需要程序員來主動調(diào)用,而是由瀏覽器在合適的時機(觸發(fā)點擊操作)進(jìn)行調(diào)用

5.操作元素

?獲取/修改元素內(nèi)容

1.innerText

<span>hello world</span>

Element.innerText 屬性表示一個節(jié)點及其后代的“渲染”文本內(nèi)容

         var div = document.querySelector('div');// 讀取 div 內(nèi)部內(nèi)容console.log(div.innerText);// 修改 div 內(nèi)部內(nèi)容, 界面上就會同步修改div.innerText = 'hello js <span>hello js</span>';

通過 innerText 無法獲取到 div 內(nèi)部的 html 結(jié)構(gòu), 只能得到文本內(nèi)容. 修改頁面的時候也會把 span 標(biāo)簽當(dāng)成文本進(jìn)行設(shè)置?

2. innerHTML

Element.innerHTML 屬性設(shè)置或獲取HTML語法表示的元素的后代

先獲取到該元素,使用innerHTML屬性就鞥能拿到元素里的內(nèi)容,修改該屬性,就會影響到界面的顯示

被打印的abc前面有一個數(shù)字11,是鼠標(biāo)點擊了11次,獲得了11次該內(nèi)容,chrome控制臺默認(rèn)會把相同的日志合并起來

如果不想合并,在設(shè)置中關(guān)閉取消勾選即可?

innerHTML 不光能獲取到頁面的 html 結(jié)構(gòu), 同時也能修改結(jié)構(gòu). 并且獲取到的內(nèi)容保留的空格 和換行.

獲取/修改元素屬性

html標(biāo)簽的屬性也會映射到j(luò)s對象中

通過 Element 對象的屬性來直接修改, 就能影響到頁面顯示效果

我們實現(xiàn)一個功能,將背景圖片點擊后,換成另一張圖片

?標(biāo)簽中的各種屬性,都是可以獲取和修改的

查看一個元素中的所有屬性:console.dir(img);都可以獲取到并且修改

獲取/修改表單元素屬性

表單元素有一些特別的屬性,普通標(biāo)簽沒有

value:獲取input的值

?注意:console.log(input.innerHTML);不能獲取到input的內(nèi)容

?inner HTML得到的是標(biāo)簽的內(nèi)容(開始標(biāo)簽和結(jié)束標(biāo)簽中間的內(nèi)容),input標(biāo)簽是單個標(biāo)簽,就沒有內(nèi)容!!

看一個示例:我們給input里輸入數(shù)字,然后點擊后數(shù)字+1并顯示出來

這個變成了字符串拼接,value屬性是一個string類型的屬性,直接加會變成字符串拼接

轉(zhuǎn)換一下:

我們實現(xiàn)一下平時使用的密碼框,可以切換密碼是否顯示的功能?

type也是input一個屬性,影響的是輸入框的形態(tài),是可見的或者密碼框

獲取/修改樣式屬性

1.修改內(nèi)聯(lián)樣式

element.style.[屬性名] = [屬性值];

element.style.cssText = [屬性名+屬性值];

"行內(nèi)樣式", 通過 style 直接在標(biāo)簽上指定的樣式. 優(yōu)先級很高. 適用于改的樣式少的情況

示例:點擊文字則放大字體

<div style="font-size: 20px;">這是一個div,點擊字體會放大</div><script>let div = document.querySelector('div');div.onclick = function(){//獲取當(dāng)前字體大小let fontSize = parseInt(div.style.fontSize);//改變字體大小fontSize+=10;//設(shè)置div字體大小div.style.fontSize = fontSize + 'px';}</script>

注意:

初始字體大小為20px?,是個字符串屬性,獲取它之后要換成數(shù)字,parseInt(div.style.fontSize);

另外,這里的fontSize采用駝峰命名,CSS中采用的是脊柱命名:font-size,是因為CSS中不需要進(jìn)行算術(shù)運算,所以不會被當(dāng)成減號,并且CSS不區(qū)分大小寫,使用駝峰也不合適,就使用脊柱法了

但是在別的語言中就需要轉(zhuǎn)換,-會被當(dāng)成減號!

2.修改元素應(yīng)用的CSS類名

element.className = [CSS 類名];class 是 JS 的保留字, 所以名字叫做 className

?修改元素的 CSS 類名. 適用于要修改的樣式很多的情況.

示例:點擊頁面切換到夜間模式(背景變成黑色) 再次點擊恢復(fù)日間模式(背景變成白色)

<div id = 'one' class="light" style="font-size: 20px;height: 50px;">這是一個div</div></div><style>.light{color:black;background:white;}.dark{color:aliceblue;background: #000;}</style><script>let div = document.querySelector('#one');div.onclick = function(){//點擊切換日間和夜間if(div.className == 'dark'){div.className = 'light';}else{div.className = 'dark';}}

6.操作節(jié)點

新增節(jié)點

分成兩個步驟 1. 創(chuàng)建元素節(jié)點 2. 把元素節(jié)點插入到 dom 樹中

document.createElement('input');是創(chuàng)建元素

div.appendChild(input);追加元素

再看個示例:實現(xiàn)無序列表的新增

    <ul><li>11</li><li>22</li></ul><script>let ul = document.querySelector('ul');for(let n = 3;n<10;n++){let li = document.createElement('li');li.innerHTML = n+ '' + n;ul.appendChild(li);}

使用appendChild是把要追加的加到元素末尾

使用 insertBefore 將節(jié)點插入到指定節(jié)點之前.

let insertedNode = parentNode.insertBefore(newNode, referenceNode);

insertedNode 被插入節(jié)點(newNode)

parentNode 新插入節(jié)點的父節(jié)點

newNode 用于插入的節(jié)點

referenceNode newNode 將要插在這個節(jié)點之前,referenceNode 為 null 則 newNode 將被插入到子節(jié)點的末尾.referenceNode 引用節(jié)點不是可選參數(shù).

看個示例:

<ul class="container"><li>11</li><li>22</li></ul><script>let ul = document.querySelector('.container');let newul = document.createElement('div');newul.innerHTML = '這是一個新節(jié)點';ul.insertBefore(newul,ul.children[0]);

插入成功?

?

?如果針對一個節(jié)點插入兩次, 則只有最后一次生效(相當(dāng)于把元素移動了)

?

第一次插入,是在最前面的0位置,現(xiàn)在相當(dāng)于有三個元素了,0-這是一個新節(jié)點,1-11,2-22,又插入到2位置,那就是22這個位置前

?

注意:一旦一個節(jié)點插入完畢, 再針對剛剛的節(jié)點對象進(jìn)行修改, 能夠同步影響到 DOM 樹中的內(nèi)容.

?刪除節(jié)點

使用 removeChild 刪除子節(jié)點

oldChild = element.removeChild(child);

child 為待刪除節(jié)點

element 為 child 的父節(jié)點

返回值為該被刪除節(jié)點

被刪除節(jié)點只是從 dom 樹被刪除了, 但是仍然在內(nèi)存中, 可以隨時加入到 dom 樹的其他位置. 如果上例中的 child節(jié)點 不是 element 節(jié)點的子節(jié)點,則該方法會拋出異常

我們刪除剛才追加的節(jié)點?

?

我們對前面的內(nèi)容做一個簡單的總結(jié)

1.選中元素 query Selector/querySelectorAll

2.事件 onclick

3.修改元素內(nèi)容 innerHTML

4.修改元素屬性 元素.屬性

5.修改表屬性 元素.value 元素.type

6.元素樣式 元素.style.樣式名 = 值? ?元素.class Name = CSS類名

7.創(chuàng)建元素 createElement

8.將元素放到dom樹上, appendChild

9.刪除元素 removeChild


下面寫兩個案例

7.案例

1.網(wǎng)頁版猜數(shù)字?

我們預(yù)期的效果:

?

<body><div>請輸入要猜的數(shù)字</div><input type="text"><button>提交</button><div class="result"></div><script>//1.生成1-100隨機數(shù)let toGuess = parseInt(Math.random()*100+1);console.log(toGuess);//2.進(jìn)行猜數(shù)字操作let button = document.querySelector('button');let resultDiv = document.querySelector('.result');let input = document.querySelector('input');button.onclick = function(){//取輸入框內(nèi)容if(input.value == ''){//沒有輸入return;}let inputNUm = parseInt(input.value);//比較大小關(guān)系if(inputNUm<toGuess){resultDiv.innerHTML = '低了';}else if(inputNUm>toGuess){resultDiv.innerHTML = '高了';}else{resultDiv.innerHTML = '猜中了';}}</script>
</body>

2.表白墻

要實現(xiàn)的頁面:

?

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>表白墻</title><style>/* *是通配符選擇器,會選中頁面所有的元素 *//* 消除瀏覽器的默認(rèn)顯示模式 */*{margin: 0;padding: 0;box-sizing: border-box;}.container{width: 600px;margin: 0 auto;}h1{margin-top: 100px;text-align: center;}p{text-align: center;color: #666;margin: 20px auto;}.row{/* 開啟彈性布局 */display: flex;height: 40px;/* 水平方向居中 */justify-content: center;/* 垂直方向居中 */align-items: center;}.row span{width: 50px;}.row input{width: 200px;height: 30px;}.row button{width: 250px;height: 30px;color: aliceblue;background-color: orange;/* 去掉邊框 */border: none;border-radius: 3px;}/* 點擊反饋 */.row button:active{background-color: grey;}</style>
</head>
<body><div class="container"><h1>表白墻</h1><p>輸入信息后提交,信息會顯示到表格中</p><div class="row"><span>誰:</span><input type="text"></div><div class="row"><span>對誰:</span><input type="text"></div><div class="row"><span>說:</span><input type="text"></div><div class="row"><button>提交</button></div></div><script>//實現(xiàn)提交操作,點擊提交按鈕,將用戶輸入的內(nèi)容提交到頁面上//點擊的時候獲取輸入框內(nèi)容,然后創(chuàng)建一個新的div.row,將內(nèi)容構(gòu)造進(jìn)去let containerDiv = document.querySelector('.container');let inputs = document.querySelectorAll('input');let button = document.querySelector('button');button.onclick = function(){//1.獲取輸入框的內(nèi)容let from = inputs[0].value;let to = inputs[1].value;let msg = inputs[2].value;if(from =='' || to == '' || msg == ''){return; }//2.構(gòu)造新的divlet rowDiv = document.createElement('div');rowDiv.className = 'row';rowDiv.innerHTML = from + ' 對 ' + to + ' 說: ' + msg;containerDiv.appendChild(rowDiv)//3.清空之前的輸入for(let input of inputs){input.value = '';}}</script>
</body>
</html>

?

http://www.risenshineclean.com/news/35319.html

相關(guān)文章:

  • 一個二手書網(wǎng)站的建設(shè)目標(biāo)google推廣公司
  • 給別人做網(wǎng)站的公司長治seo
  • 網(wǎng)頁瀏覽器tv版51趣優(yōu)化網(wǎng)絡(luò)seo工程師教程
  • 如何做網(wǎng)站規(guī)劃谷歌推廣運營
  • 直接拖拉做網(wǎng)站的軟件seo網(wǎng)站培訓(xùn)優(yōu)化怎么做
  • 用HBuilder做網(wǎng)站的模板關(guān)鍵詞優(yōu)化顧問
  • 做當(dāng)?shù)亻T戶網(wǎng)站多少錢html網(wǎng)頁制作軟件有哪些
  • 怎么給網(wǎng)站制作二維碼免費網(wǎng)站排名優(yōu)化軟件
  • 網(wǎng)站建設(shè)做哪 個會計科目搜索風(fēng)云排行榜
  • 湖南城鄉(xiāng)建設(shè)部網(wǎng)站不收費推廣網(wǎng)站有哪些
  • 惠州網(wǎng)站制作費用哈爾濱最新疫情通報
  • vs做網(wǎng)站出現(xiàn)顯示bug百度搜索資源平臺提交
  • 郵編域名做網(wǎng)站百度一下網(wǎng)頁
  • 手機網(wǎng)站生成app解析域名網(wǎng)站
  • 本溪網(wǎng)站建設(shè)網(wǎng)站建站公司
  • 家裝企業(yè)網(wǎng)站系統(tǒng)下載安卓優(yōu)化大師老版本
  • 如何經(jīng)營一個購物網(wǎng)站seo關(guān)鍵詞查詢工具
  • 上海市建設(shè)交通工會網(wǎng)站百度關(guān)鍵詞優(yōu)化專家
  • 做動漫網(wǎng)站如何應(yīng)用數(shù)據(jù)綁定百度一下你就知道百度一下
  • 中衛(wèi)企業(yè)管理培訓(xùn)網(wǎng)站優(yōu)化公司網(wǎng)站
  • 菏澤做網(wǎng)站公司百度搜索引擎優(yōu)化詳解
  • 深圳大浪網(wǎng)站建設(shè)深圳網(wǎng)
  • 杭州軟件app制作公司太原seo排名
  • 做電影網(wǎng)站需要什么條件網(wǎng)絡(luò)營銷策劃內(nèi)容
  • 深圳app開發(fā)公司哪家服務(wù)好巢湖seo推廣
  • 莆田網(wǎng)站建設(shè)哪家好什么是全網(wǎng)營銷推廣
  • 263企業(yè)郵箱登錄入口首頁上海seo公司哪家好
  • 買源碼做網(wǎng)站靠譜嗎網(wǎng)絡(luò)公司網(wǎng)絡(luò)推廣服務(wù)
  • 社會保險業(yè)務(wù)網(wǎng)站百度指數(shù)app官方下載
  • 東莞外貿(mào)公司建網(wǎng)站業(yè)務(wù)推廣方式