国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

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

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

目錄

1.什么是Web API?

2.DOM和DOM樹

3.獲取元素?

4.事件

5.操作元素

?獲取/修改元素內容

1.innerText

2. innerHTML

獲取/修改元素屬性

獲取/修改表單元素屬性

獲取/修改樣式屬性

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

2.修改元素應用的CSS類名

6.操作節(jié)點

新增節(jié)點

刪除節(jié)點

7.案例

1.網頁版猜數字?

2.表白墻


1.什么是Web API?

?之前學習的JS分為三個大的部分

ECMAScript: 基礎語法部分

DOM API: 操作頁面結構

BOM API: 操作瀏覽器

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

想要實現一個復雜的具有交互功能的頁面不能只靠基礎語法,還需要Web API?的支持

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

2.DOM和DOM樹

DOM ,文檔對象模型.全稱為 Document Object Model,提供了一系列的函數,讓我們可以操作網頁內容,網頁結構,網頁樣式

一個頁面的結構是一個樹形結構, 稱為 DOM 樹.

注意:

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

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

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

3.獲取元素?

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

let element = document.querySelector(selectors);

注意:

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

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

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

看一個示例

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.事件

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

事件三要素

事件源:明確那個元素產生的事件

事件類型:用戶進行的什么操作,是鼠標按下,移動還是別的..

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

看一個示例

事件源:btn按鈕

事件類型:點擊

事件處理程序:function()

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

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

5.操作元素

?獲取/修改元素內容

1.innerText

<span>hello world</span>

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

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

通過 innerText 無法獲取到 div 內部的 html 結構, 只能得到文本內容. 修改頁面的時候也會把 span 標簽當成文本進行設置?

2. innerHTML

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

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

被打印的abc前面有一個數字11,是鼠標點擊了11次,獲得了11次該內容,chrome控制臺默認會把相同的日志合并起來

如果不想合并,在設置中關閉取消勾選即可?

innerHTML 不光能獲取到頁面的 html 結構, 同時也能修改結構. 并且獲取到的內容保留的空格 和換行.

獲取/修改元素屬性

html標簽的屬性也會映射到js對象中

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

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

?標簽中的各種屬性,都是可以獲取和修改的

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

獲取/修改表單元素屬性

表單元素有一些特別的屬性,普通標簽沒有

value:獲取input的值

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

?inner HTML得到的是標簽的內容(開始標簽和結束標簽中間的內容),input標簽是單個標簽,就沒有內容!!

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

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

轉換一下:

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

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

獲取/修改樣式屬性

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

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

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

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

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

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

注意:

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

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

但是在別的語言中就需要轉換,-會被當成減號!

2.修改元素應用的CSS類名

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

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

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

<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);追加元素

再看個示例:實現無序列表的新增

    <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é)點不是可選參數.

看個示例:

<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é)點插入兩次, 則只有最后一次生效(相當于把元素移動了)

?

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

?

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

?刪除節(jié)點

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

oldChild = element.removeChild(child);

child 為待刪除節(jié)點

element 為 child 的父節(jié)點

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

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

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

?

我們對前面的內容做一個簡單的總結

1.選中元素 query Selector/querySelectorAll

2.事件 onclick

3.修改元素內容 innerHTML

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

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

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

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

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

9.刪除元素 removeChild


下面寫兩個案例

7.案例

1.網頁版猜數字?

我們預期的效果:

?

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

2.表白墻

要實現的頁面:

?

<!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>/* *是通配符選擇器,會選中頁面所有的元素 *//* 消除瀏覽器的默認顯示模式 */*{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>//實現提交操作,點擊提交按鈕,將用戶輸入的內容提交到頁面上//點擊的時候獲取輸入框內容,然后創(chuàng)建一個新的div.row,將內容構造進去let containerDiv = document.querySelector('.container');let inputs = document.querySelectorAll('input');let button = document.querySelector('button');button.onclick = function(){//1.獲取輸入框的內容let from = inputs[0].value;let to = inputs[1].value;let msg = inputs[2].value;if(from =='' || to == '' || msg == ''){return; }//2.構造新的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://aloenet.com.cn/news/35319.html

相關文章:

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