五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

JS map/set函數(shù)對象面向?qū)ο驜OM表單JQuery#20230714

2023-07-14 15:02 作者:Biehmltym  | 我要投稿



## 3。js中 !==和?!=的區(qū)別

### 1、用法

都是用來比較值的。

### 2、比較過程

#### != 比較時,若類型不同,會償試轉(zhuǎn)換類型;

#### !== 只有相同類型才會比較。


### 3、比較結(jié)果


#### !=返回同類型值比較結(jié)果 ;


#### !== 不同類型不比較,且無結(jié)果,同類型才比較;


### 4、舉例


var num = 1;? ?var str = '1';? ?var test = 1;


test !== num? ? //false test與num類型相同,其值也相同,非運算肯定是false。


num != str? ? //false == 的非運算。


num !== str? ? //true? num 與 str類型不同 意味著其兩者不等,非運算自然是true啦。



####? 3? “2” + 默認(rèn)拼接 - 只能運算?


```javascript

? ? ? ? var a = 2;

? ? ? ? var b = "3";

? ? ? ? alert(a + b) //彈出23


```



### 3.5? Map和Set (ES6)

#### Map:

```javascript

//ES6 Map

? ? ?1 //ES6 Map

? ? ? ? //學(xué)生的成績,學(xué)生的名字

? ? ? ? // var names = ["tom","jack", "haha"];

? ? ? ? // var scores = [100,90,80];

? ? ? ? 8

? ? ? ? 9

? ? ? ? var map = new Map([['tom', 100], ['jack', 90], ["haha',80]]);var name = map.get('tom');?

? ? ? ? //通過key獲得valuemap.set('admin',123456); //新增或修改map.delete("tom");?

? ? ? ? //刪除

```

? ? ? ??

? ? ? ??

? ? ? ??

####? ? Set:無序不重復(fù)的集合

```javascript

? ? ? ??

? ? ? ? set.add(2); //添加

? ? ? ? set.delete(1); //刪除

? ? ? ? console

? ? ? ? .1

? ? ? ? og(set.has(3)); //是否包含某個元素

```




我的練習(xí):


```javascript


? ? <script>



? ? ? ? var map = new Map([['tom', 100], ['kavl', 90], ['dfg', 67]]);

? ? ? ? var name0 = map.get('dfg');

? ? ? ? map.set('bella', 234567);

? ? ? ? map.delete('dfg');

? ? ? ? console.log('kavl');



? ? ? ? var set = new Set([3, 1, 1, 1, 1, 1]);


? ? ? ? set.add(2);

? ? ? ? set.add(5);

? ? ? ? set.delete(2);


? ? ? ? console.log(set.has(5));



? ? </script>

````

? ??

? ??

? ??

### 3.6 iterator

?


#### 遍歷數(shù)組?

```javascript


//通過for of / for in 下標(biāo)

var arr = [3,4,5]

for (var x of arr){console.1og(x)

```

#### 遍歷map

```javascript


? ? ? ? var map = new Map([["tom", 100], ["jack", 90], ["haha", 80]]);

? ? ? ? for (let x of map) {

? ? ? ? ? ? console.1og(x)

```



#### 遍歷set

? ? ? ? ??

```javascript


? ? ? ? ? ? var set = new Set([5, 6, 7]);

? ? ? ? ? ? for (let x of set) [

? ? ? ? ? ? ? ? console.1og(x)

? ? ? ? ? ? ? ??

```


## 4、函數(shù)?

### 4.1 定義函數(shù)

函數(shù) vs方法? 對象(屬性,方法)



#### 定義方法1?

```java

? ? ? ? function abs(x) {

? ? ? ? ? ? if (x >= 0) {

? ? ? ? ? ? ? ? return x;

? ? ? ? ? ? } else {

? ? ? ? ? ? ? ? return -x;

? ? ? ? ? ? }

? ? ? ? }

```

一旦執(zhí)行到 return 代表函數(shù)結(jié)束,返回結(jié)果!如果沒有執(zhí)行 return,函數(shù)執(zhí)行完也會返回結(jié)果,結(jié)果就是 undefined


#### 定義方法2?

匿名函數(shù)直接賦值給一個變量?


```java


? ? ? ? var abs = function (x) {

? ? ? ? ? ? if (x >= 0) {

? ? ? ? ? ? ? ? return x;

? ? ? ? ? ? } else {

? ? ? ? ? ? ? ? return -x;

? ? ? ? ? ? }

? ? ? ? }

```


function(x){.....}這是一個匿名函數(shù)。但是可以把結(jié)果賦值給 abs,通過abs 就可以調(diào)用函數(shù)


#### 調(diào)用函數(shù)?


直接abs(10)//10

abs(-10)//10

#### 手動拋出異常

```java



? ? ? ? var abs = function (x) {

? ? ? ? ? ? //手動拋出異常

? ? ? ? ? ? if (typeof x !== 'number') {

? ? ? ? ? ? ? ? throw 'Not a Number ~~';

? ? ? ? ? ? }

? ? ? ? ? ? if

? ? ? ? ? ? (x >= 0) {

? ? ? ? ? ? ? ? return x;

? ? ? ? ? ? } else {

? ? ? ? ? ? ? ? return -x;

? ? ? ? ? ? }

? ? ? ? }

```


#### arugements?

是一個免費贈送的關(guān)鍵字;arguments代表,傳遞進來的所有的參數(shù),是一個數(shù)組!

```java


? ? ? ? var abs = function (x) {

? ? ? ? ? ? console.log("x====>" + x);


? ? ? ? ? ? for (var i = 0; i < arguments.length; i++) {

? ? ? ? ? ? ? ? console.log(arguments[i]);


? ? ? ? ? ? }


? ? ? ? ? ? if (x >= 0) {

? ? ? ? ? ? ? ? return x;

? ? ? ? ? ? } else {

? ? ? ? ? ? ? ? return -x;

? ? ? ? ? ? }



? ? ? ? }

```


#### rest?


ES6 引入的新特性,獲取除了已經(jīng)定義的參數(shù)之外的所有參數(shù)

rest 參數(shù)只能寫在最后面,必須用 ... 標(biāo)識。

?

```javascript


? ? ? ? function aaa(a, b, ...rest) {

? ? ? ? ? ? console.log(a);

? ? ? ? ? ? console.log(b);

? ? ? ? ? ? console.log(rest);

? ? ? ? }

```



### 4.2 變量的作用域


在javascript中, var 定義變量實際是有作用域的


#### 1 假設(shè)在函數(shù)體中聲明,則在函數(shù)體外不可以使用

? ? ? ? ~(非要想實現(xiàn)的話,后面可以研究一下

? ? ? ? 閉包


```javascript

? ? ? ?function qj() {


? ? ? ? ? ? var x = 1;

? ? ? ? ? ? X = x + 1;

? ? ? ? }


? ? ? ? x = x + 2; //Uncaught ReferenceError: x is not defined

```

#### 2 如果兩個函數(shù)使用了相同的變量名,只要在函數(shù)內(nèi)部,就不沖突



```javascript

?function qj() {

? ? ? ? ? ? var x = 1;

? ? ? ? ? ? x = x + 1;

? ? ? ? }


? ? ? ? ? ? function qj2() {

? ? ? ? ? ? ? ? var x = 'A';

? ? ? ? ? ? ? ? x = x + 1;

? ? ? ? ? ? }


```



#### 3 內(nèi)部函數(shù)可以訪問外部函數(shù)的成員,反之則不行


```javascript

?function qj() {

?

? ? ? ? ? ? var x = 1;

? ? ? ? ? ? function qj2() {

? ? ? ? ? ? ? ? var y = x + 1;//y=2

? ? ? ? ? ? ? ? ? ? }

// 內(nèi)部函數(shù)可以訪問外部函數(shù)的成員,反之則不行

? ? ? ?var z = y + 1;

? ? ? ?// 報錯 找不到 not defined

? ? ? ? }

```


#### 4 就近原則。假設(shè)在javaScript 中 函數(shù)查找變量從自身函數(shù)開始~,由“內(nèi)“向“外“查找.假設(shè)外部存在這個同名的函數(shù)變量,則內(nèi)部函數(shù)會屏蔽外部函數(shù)的變量。


```javascript


? ? ? ? function qj() {

? ? ? ? ? ? var x = 1;


? ? ? ? ? ? function qj2() {

? ? ? ? ? ? ? ? var x = 'A';

? ? ? ? ? ? ? ? console.log('inner' + x);

? ? ? ? ? ? }


? ? ? ? ? ? qj2();


? ? ? ? ? ? //innerA


? ? ? ? ? ? console.log('outer' + x);


? ? ? ? }


? ? ? ? qj();

? ? ? ? //outer1



```




#### 5 js存在變量提升機制,JS引擎遇到var聲明,會將其聲明提到作用域頂端


##### 5.1 全局變量

```javascript

x = 1;

function f(){

console.1og(x);

};

f();//1?

console.1og(x);//1?

```

這個是在JavaScript建立之初就存在的特性。養(yǎng)成規(guī)范: 所有的變量定義都放在函數(shù)的頭部,不要亂放,便于代碼維護;


#####? 5。2全局函數(shù)

```javascript

//全局變量 定義在函數(shù)之外的 就是全局變量??

x = 1;

I

function fO fconsole.1og(x);

2fO;

console.1og(x);

```?


##### 5.2 全局對象 window

變量是對象的變量,變量都要綁定在對象上。

而默認(rèn)所有的全局變量,都會自動綁定在 window對象下;



```javascript


var x ='xxx';

alert(x);

alert(window.x);

// 默認(rèn)所有的全局變量,都會自動綁定在 window對象下;

```

##### 5.3alert這個函數(shù)本身也是一個 window 變量


```javascript


? ? ? ?var x = 'xxx';

? ? ? ? window.alert(x);

? ? ? ? var old_alert = window.alert;

? ? ? ? //old_alert(x);

? ? ? ? window.alert = function () {

? ? ? ? };

? ? ? ? // 發(fā)現(xiàn) alert() 失效了 I

? ? ? ? window.alert(123);

? ? ? ? //恢復(fù)

? ? ? ? window.alert = old_alert;

? ? ? ? window.alert(456);

```



Javascript 實際上只有一個全局作用域,任何變量 (函數(shù)也可以視為變量),假設(shè)沒有在函數(shù)作用范圍內(nèi)找到,就會向外查找,如果在全局作用域都沒有找到,報錯RefrenceError





##### 5,4 規(guī)范

由于我們所有的全局變量都會綁定到我們的 window 上。如果不同的is 文件,使用了相同的全局變量,沖突~>如果能夠減少沖突?


jQuery.XXX

$.XXX




```javascript


? ? ? // 唯一全局變量

? ? ? ? var Zyy = {};

? ? ? ? // 定義全局變量

? ? ? ? Zyy.name = 'kuangshen', Zyy.add = function (a, b) {

? ? ? ? ? ? return

? ? ? ? ? ? a + b;

? ? ? ? }

? ? ? ??

? ? ? ??

```

把自己的代碼全部放入自己定義的唯一空間名字中,降低全局命名沖突的問題

jQuery

####? 7 局部作用域let

```javascript

? ? ? ? function aaa() {


? ? ? ? ? ? for (var i = 0; i < 100; i++) {

? ? ? ? ? ? ? ? console.log(i)

? ? ? ? ? ? }

? ? ? ? ? ? console.log(i + 1); //問題? i 出了這個作用域還可以使用

? ? ? ? }

```

ES6. let 關(guān)鍵字,解決局部作用域沖突問題

```javascript


? ? ? ? function aaa() {


? ? ? ? ? ? for (let i = 0; i < 100; i++) {

? ? ? ? ? ? ? ? console.log(i)

? ? ? ? ? ? }

? ? ? ? ? ? console.log(i + 1);?

? ? ? ? ? ? //uncaught ReferenceError: i is not defined

? ? ? ? }

? ? ? ??

? ? ? ??

? ? ? ??

? ? ? ??

```


在 ES6 引入了常量關(guān)鍵字const

```javascript


const PI ='3.14';// 只讀變量

console.1og(PI);


PI ='123', // TypeError: Assignment to constant variable.

console.1og(PI);

```


### 4.3、 方法的定義和調(diào)用?

#### 定義方法

##### 1? 方法就是把函數(shù)放在對象的里面,對象只有兩個東西 : 屬性和方法


```javascript

? ? ? ? var zyy = {

? ? ? ? ? ? name: '王千',

? ? ? ? ? ? bitrh: 1996,

? ? ? ? ? ? // 方法

? ? ? ? ? ? age: function () {

? ? ? ? ? ? ? ? // 今年 - 出生的年

? ? ? ? ? ? ? ? var now = new Date().getFullYear();

? ? ? ? ? ? ? ? return now - this.bitrh;

? ? ? ? ? ? }

? ? ? ? }

//屬性 zyy.name

//方法,一定要帶zyy. age()

```



##### 2 或者 將方法分開寫,讓對象的屬性值調(diào)用方法。



```javascript

? ? ? ? function getAge() {

? ? ? ? ? ? // 今年 - 出生的年

? ? ? ? ? ? var now = new Date().getFullYear();

? ? ? ? ? ? return now - this.bitrh;


? ? ? ? }


? ? ? ? var zyy = {

? ? ? ? ? ? name: '王千',

? ? ? ? ? ? bitrh: 1996,

? ? ? ? ? ? // 方法

? ? ? ? ? ? age: getAge

? ? ? ? }

? ? ? ??

```


java :this是無法指向的,是默認(rèn)指向調(diào)用它的那個對象;

javascript:


##### 3 apply 在js 中可以控制 this 指向


```javascript

? ? ? function getAge() {

? ? ? ? ? ? // 今年 - 出生的年

? ? ? ? ? ? var now = new Date().getFullYear();

? ? ? ? ? ? return now - this.bitrh;


? ? ? ? }


? ? ? ? var zyy = {

? ? ? ? ? ? name: '王千',

? ? ? ? ? ? bitrh: 1996,

? ? ? ? ? ? // 方法

? ? ? ? ? ? age: getAge

? ? ? ? }

? ? ? ? var? ls= {

? ? ? ? ? ? name: '李四',

? ? ? ? ? ? bitrh: 2000,

? ? ? ? ? ? // 方法

? ? ? ? ? ? age: getAge

? ? ? ? }

? ? ? ? getAge.apply(b,[]);

? ? ? ? //this,指向了ls,參數(shù)為空

```


#### 調(diào)用?

getAge.apply(ls,[])

VS

ls.age()?


主動調(diào)用 和被動調(diào)用?



## 5.內(nèi)部對象?

?標(biāo)準(zhǔn)對象

```java

?typeof 123

? ? ? ? "number"

? ? ? ??

? ? ? ? typeof '123'

? ? ? ? "string"

? ? ? ? typeof true

? ? ? ? "boolean"

? ? ? ? typeof NaN

? ? ? ? "number"

? ? ? ? typeof []

? ? ? ? "object"

? ? ? ? typeof {}

? ? ? ??

? ? ? ? "object"

? ? ? ? typeof Math.abs

? ? ? ? "function"

? ? ? ? typeof undefined

? ? ? ? "undefined"

```

### 5.1 Date 日期類型?

?```javascript

?


? ? ? ? var now = new Date();//sat Jan 04 2020 10:47:06 GMT+0800 (中國標(biāo)準(zhǔn)時間)now.getFu11Year(; //年

? ? ? ? now.getMonth();// 月0~11 代表月now.getDate(); // 日now.getDay(;// 星期幾now.getHours(); // 時

? ? ? ? now.getMinutes(;// 分now.getSeconds();// 秒

? ? ? ? now.getTime();// 時間戳 全世界統(tǒng)一 1970 1.1 0:00:00毫秒數(shù)

? ? ? ? console.1og(new Date(1578106175991)) //時間戳轉(zhuǎn)為時間

? ? ? ? now = new Date(1578106175991)sat Jan 04 2020 10:49:35 GMT+0800 (中國標(biāo)準(zhǔn)時間)

? ? ? ? now.toLocalestring?

? ? ? ? // 注意,調(diào)用是一個方式,不是一個屬性!f toLocalestring() f [native code] ]now.toLocalestring()"2020/1/4 上午10:49:35"

? ? ? ? now.toGMTstring(

? ? ? ? ? ? "sat,04 Jan 2020 02:49:35 GMT"

? ? ? ? ? ??

? ? ? ? ? ??

? ? ? ? ? ??

?Date()

如何使用 Date() 方法獲得當(dāng)日的日期。

Date.getFullYear()

使用 getFullYear() 獲取年份。

Date.getTime()

Date.getTime() 返回從 1970 年 1 月 1 日至今的毫秒數(shù)。

Date.setFullYear()

如何使用 setFullYear() 設(shè)置具體的日期。

Date.toUTCString()

如何使用 toUTCString() 將當(dāng)日的日期(根據(jù) UTC)轉(zhuǎn)換為字符串。

Date.getDay()

如何使用 getDay() 和數(shù)組來顯示星期,而不僅僅是數(shù)字。

Date.Display a clock

如何在網(wǎng)頁上顯示一個鐘表。

```


?

### 5.2 JSON


json 是什么

早期,所有數(shù)據(jù)傳輸習(xí)慣使用 XML 文件!

·JSONUavaScript Object Notation,J 對象簡譜)是一種輕量級的數(shù)據(jù)交換格式簡潔和清晰的層次結(jié)構(gòu)使得JSON 成為理想的數(shù)據(jù)交換語言.易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率

在JavaScript 一切皆為對象、任何is 支持的類型都可以用SON來表示

格式:

###### 對象都用 {}

###### 數(shù)組都用[]

###### 所有的鍵值對 都是用 key:value


#### 對象轉(zhuǎn)化為json字符串?

?var user = {

? ? ? ? ? ? name: "wangqian",

? ? ? ? ? ? age: 3,

? ? ? ? ? ? sex: '女'

? ? ? ? }

? ? ? ? {"name":"qinjiang","age":3,"sex":"男"]

? ? ? ? var jsonUser = JSON.stringify(user);

? ? ? ??

? ?調(diào)用:jsonUser? ? ??

? ?

? ? ? ??

####? ? ?json 字符串轉(zhuǎn)化為對象 參數(shù)為 json 字符串

? ? ? ? var obj = JSON.parse('{"name":"wangqian","age":3, "sex":"女"}');

調(diào)用:

console.log(obj)



### 5.3、Ajax

。原生的js寫法 xhr 異步請求。jQuey 封裝好的方法 $(“#name").ajax("axios 請求




## 6. 面向?qū)ο缶幊?class繼承


javascript、Java、c#。。。。面向?qū)ο?javascript有些區(qū)別!

##### 類: 模板 原型?

##### 對象: 具體的實例

在JavaScript這個需要大家換一下思維方式!

原型:


###? ?6.1? 原型? ?xiaoming.__proto__ = Bird;



```javascript



? ? ? ? var Student = {

? ? ? ? ? ? name: "qinjiang",


? ? ? ? ? ? age: 3,

? ? ? ? ? ? run: function () {

? ? ? ? ? ? ? ? console.log(this.name + " run....");

? ? ? ? ? ? }


? ? ? ? };

? ? ? ? var xiaoming = {

? ? ? ? ? ? name: "xiaoming";

? ? ? ? }

? ? ? ? //原型對象

? ? ? ? xiaoming.__proto__ = Student;

? ? ? ? var Bird = {

? ? ? ? ? ? fly: function () {

? ? ? ? ? ? ? ? console.log(this.name + " fly....");

? ? ? ? ? ? }

? ? ? ? };


? ? ? ? // 小明的原型 是 student

? ? ? ? xiaoming.__proto__ = Bird;


```





### 6.2 class 繼承

關(guān)鍵字,是在ES6引入的class

##### 定義一個類,屬性,方法



class 示例


```javascript?

? ?//定義一個學(xué)生類 屬性和方法


? ? ? ? class Student {

? ? ? ? ? ? constructor(name) {

? ? ? ? ? ? ? ? this.name = name;

? ? ? ? ? ? }


? ? ? ? ? ? hello() {

? ? ? ? ? ? ? ? alert("hello")

? ? ? ? ? ? }

? ? ? ? }


? ? ? ? class XiaoStudent extends Student {

? ? ? ? ? ? constructor(name, grade) {


? ? ? ? ? ? ? ? super(name);

? ? ? ? ? ? ? ? this.grade = grade;

? ? ? ? ? ? }


? ? ? ? ? ? myGrade() {

? ? ? ? ? ? ? ? alert('hi 我是一名小學(xué)生')

? ? ? ? ? ? }

? ? ? ? }


? ? ? ? var xi = new XiaoStudent("xi");


// //調(diào)用? :? ? ?xi.hello()

//? ? ? ? ?xi.myGrade()

//? ? ? ? ?xi.name


```



```javascript

? ? ? ? //ES6之后

? ? ? ? //定義一個學(xué)生類 屬性和方法


? ? ? ? class Student {

? ? ? ? ? ? constructor(name) {

? ? ? ? ? ? ? ? this.name = name;


? ? ? ? ? ? }


? ? ? ? ? ? hello() {

? ? ? ? ? ? ? ? alert("hello")


? ? ? ? ? ? }


? ? ? ? }


? ? ? ? var xiaoming = new Student("xiaoming");


? ? ? ? //調(diào)用: xiaoming.hello(); 對象小明的hello方法

? ? ? ? //調(diào)用:? ? ?xiaoming.name 對象小明的name屬性

? ? ? ? var lisi = new Student("lisi");

? ? ? ? //lisi.hello()

? ? ? ? //? ? ?lisi.name

? ? ? ??

? ? ? ??

```





```javascript

console.log(xi);


?XiaoStudent {name: 'xi', grade: undefined}grade: undefinedname: "xi"[[Prototype]]: Studentconstructor: class XiaoStudentmyGrade: ? myGrade()[[Prototype]]: Objectconstructor: class Studenthello: ? hello()[[Prototype]]: Object


```



## 7 操作BOM對象(重點)


### 7,1 瀏覽器介紹

JavaScript 和瀏覽器關(guān)系?

#### JavaScript 誕生就是為了能夠讓他在瀏覽器中運行!

#### BOM:瀏覽器對象模型

IE6~11

Chrome

Safari

FireFox

Opera

三方

。QQ瀏覽器

。360瀏覽器



### 7.2window 窗口

window 代表瀏覽器窗口


```javascript

window.alert(1)

undefined

window.innerHeight

window.innerwidth

window.outerHeight

window.outerwidth


// 大家可以調(diào)整瀏覽器窗口試試...

```

### 7.3 navigator 不建議用

```javascript


navigator. appName

“Netscape"

navigator.appVersion

"5.0 (windows NT 10.0; wOW64) AppleWebKit/537.36 (KHTML,1ike Gecko)chrome /63.0.3239.132 safari /537.36"

navigator.userAgent"

Mozi11a/5.0 (windows NT 10.0;wOW64)ApplewebKit/537.36 (KHTML,1ikeGecko) chrome /63.0.3239.132 Safari/537.36"

navigator.platform

"win32"

數(shù)時候,我們不會使用

對象,因為會被人為修改.navigator

```


### 7.4 screen 屏幕信息?

screen.width

57

screen.height

677




### 7.5 location (重要)

```html


location


location 代表當(dāng)前頁面的URL信息

host: "www. baidu.com"


href:"https ://www.baidu.com/"

protocol:"https:"

reload:f reload() // 刷新網(wǎng)頁

// 設(shè)置新的地址

1ocation .assign('https://blog. zyy.com/')

```

###? 7.6 document 內(nèi)容 表單

#### 1 document.title

'新標(biāo)簽頁'

#### 2 document.title="haohao"

'haohao'




#### 3 獲取具體的文檔樹節(jié)點 document.getElementById('app');


```javascript

<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8">

? ? <title>Title</title>

? ? <script>



? ? </script>


</head>

<body>


<dl id="app">

? ? <dt>Java</dt>

? ? <dd>JavaSE</dd>

? ? <dd>JavaEE</dd>

</dl>

<script>

? ? var dl = document.getElementById('app');

</script>


</body>

</html>


```

### 7.7 獲取cookie??



##### 1 獲取 cookie

document.cookie

guid=111872281.88375976493059340.1578110638877.133;monitor_count=1"

##### 2 劫持 cookie 原理

www.taobao.com

<script src=""aa.js"></script>

<!--惡意人員;獲取你的cookie上傳到他的服務(wù)器-->

##### 服務(wù)器端可以設(shè)置 cookie: httpOnly




###? 7.8 history瀏覽器的歷史記錄

history 代表瀏覽器的歷史記錄


history.back() //后退

history.forward() //前進



## 8 操作DOM對象(對象)增刪改查?


### 8.1核心

瀏覽器網(wǎng)頁就是一個Dom 樹形結(jié)構(gòu)!

#### 更新:更新Dom節(jié)點

#### 遍歷dom節(jié)點: 得到Dom節(jié)點

#### 刪除: 刪除一個Dom節(jié)點

#### 添加: 添加一個新的節(jié)點要操作一個Dom節(jié)點,就必須要先獲得這個Dom節(jié)點


### 8.2獲得dom節(jié)點


對應(yīng)css選擇器

#### 1標(biāo)簽document.getElementsByTagName('h1');

? ? ?var h1 = document.getElementsByTagName('h1');

#### 2通過元素iddocument.getElementById('p1');

? ? var p1 = document.getElementById('p1');

#### 3通過類名document.getElementsByClassName('p2')

? ? var p2 = document.getElementsByClassName('p2');

#### 4獲取夫類的節(jié)點后.children獲取所有子元素

? ? var father = document.getElementById('father');

? ? ?var childrens =father.children;


4以下是源代碼:



```javascript

<body>

<div id="father">

? ? <h1>標(biāo)題一</h1>

? ? <p id="p1">p1</p>

? ? <p>p2</p>


</div>


<script>

? ? //對應(yīng)css選擇器

? ? var h1 = document.getElementsByTagName('h1');

? ? var p1 = document.getElementById('p1');

? ? var p2 = document.getElementsByClassName('p2');

? ? var father = document.getElementById('father');

? ? ?var childrens =father.children;


? ? /*

? ? * father.children

HTMLCollection(3)[h1, p#p1, p.p2, p1: p#p1]? ? ?

* 獲取父節(jié)點下的所有子節(jié)點

*/

</script>


</body>


```



###? 8.3更新節(jié)點

#### 1 操作文本?

##### id1.innerText='hello world'


##### document.getElementById('id1').innerText='hello? 122345'


##### id1.innerHTML='<strong>1243</strong>'

可以解析HTML文本標(biāo)簽






```javascript


<div id="id1">123 </div>


<!--document.getElementById('id1')


得到此標(biāo)簽

-->


<script>

? ? var? id1 = document.getElementById('id1');

? ? id1.innerText='hello world'



?//結(jié)合獲取節(jié)點 加 調(diào)用innerText 進行代碼塊內(nèi)容的修改

? ? //? ?document.getElementById('id1').innerText='hello? 122345'

?

</script>

```




#### 2 操作CSS



##### id1.style.color='red'//屬性使用字符串進行包裹?


##### id1.style.fontSize='200px'

不需要方法 直接結(jié)合獲取節(jié)點 加 調(diào)用style方法進行?


##### document.getElementById('id1').style.color='blue'

#####? id1.style.paddding = '2em'





#### 3刪除結(jié)點

注意: 刪除多個節(jié)點的時候,children 是在時刻變化的,刪除節(jié)點的時候一定要注意!

? ?//刪除元素p1


? ? var p1 = document.getElementById('p1');

? ? //找到p1的父結(jié)點

? ? var father = p1.parentElement;

? ? //通過父節(jié)點調(diào)用removeChildren方法 向下查找 進行刪除操作


?//? 調(diào)用 father.removeChild(p1);




```javascript

<body>

<div id="father">

? ? <h1>標(biāo)題一</h1>

? ? <p id="p1">p1</p>

? ? <p>p2</p>


</div>

<script>

? ? //刪除元素p1


? ? var p1 = document.getElementById('p1');

? ? //找到p1的父結(jié)點

? ? var father = p1.parentElement;

? ? //通過父節(jié)點調(diào)用removeChildren方法 向下查找 進行刪除操作


?//? 調(diào)用 father.removeChild(p1);



</script>


</body>



```


#### 4插入節(jié)點





創(chuàng)建一個新的標(biāo)簽,實現(xiàn)插入?

```javascript

<body>


<p id="js"> JavaScript</p>


<div id="list">

? ? <p id="se">javaSE</p>

? ? <p id="ee">javaEE</p>

? ? <p id="me">javaME</p>



</div>


<script>

? ? var js = document.getElementById('js');

? ? var list = document.getElementById('list');

? ? //調(diào)用:

? ? //list.appendChild(js) 追加到后面


? ? var newP = document.createElement('p');//創(chuàng)建一個p標(biāo)簽

? ? newP.id = 'newP';


? ? newP.innerText = 'Hello,bella';

? ? list.appendChild(newP);


? ? var myScript = document.createElement('script');//創(chuàng)建一個標(biāo)簽節(jié)點

? ? myScript.setAttribute('type', 'text/javascript');

? ? myScript.setAttribute('id', 'js123');

? ? list.appendChild(myScript);

? ? //操作 :list.appendChild(myScript) 講myScript標(biāo)簽作為子結(jié)點添加到list列表內(nèi)


? ? // 創(chuàng)建一個Style 標(biāo)簽

? ? var myStyle1 = document.createElement('style');//創(chuàng)建一個空style標(biāo)簽

? ? myStyle1.setAttribute('type','text/css');//設(shè)置標(biāo)簽的屬性

? ? myStyle1.innerHTML='body{background-color:red;}';//設(shè)置標(biāo)簽的內(nèi)容

?document.getElementsByTagName('head')[0].appendChild(myStyle1)

? ? //插入到head的頭部


</script>


</body>

```


###### insert


## 9、操作表單(驗證)

### 9.1表單是什么 form DOM 樹

##### 。文本框 text

##### 。下拉框< select >

##### 。單選框radio

##### 。多選框checkbox

##### 。隱藏域 hidden

##### 。密碼框password

##### 。表單的目的: 提交信息


```javascript

<body>

<form action="post">

? ? <p>

? ? ? ? <span> 用戶名:</span> <input type="text " id="username">

? ? </p>

? ? <p>

? ? </p>


</form>


<script>

? ? var input_text = document.getElementById('username');


</script>

<!--input_text.value? 獲取輸入框的值

input_text.value=? 修改輸入框的值

-->


</body>


```


### 9.2 獲得要提交的信息


```javascript

<body>

<form action="post">

? ? <p>

? ? ? ? <span> 用戶名:</span>

? ? ? ? <input type="text " id="username">

? ? ? ??

? ? </p>

? ? <p>

? ? ? ? <span>性別:</span>

? ? ? ? <input type="radio" name="sex" value="man" id="boy">男

? ? ? ? <input type="radio" name="sex" value="women" id="girl"> 女

? ? </p>

</form>

<script>

? ? var input_text = document.getElementById('username');

? ? var boy_radio = document.getElementById('boy');

? ? var girl_radio = document.getElementById('girl');


</script>



</body>

```




```javascript

<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8">

? ? <title>Title</title>

</head>

<body>


<form action="https://www.baidu.com" method="post" onsubmit="return aaa()">

? ? <p>

? ? ? ? <span> 用戶名: </span>

? ? ? ? <input type="text" id="username" name="username">

? ? </p>

?

? ? <p><span>密碼:</span>

? ? ? ? <input type="password" id="input-password">



? ? </p>

? ? <input type="hidden" id="md5-password" name="password">

? ? <!--? ? 綁定時間 onclick 被點擊 -->

? ? <button type="submit">提交</button>

</form>


<script>

? ? function aaa() {

? ? ? ? alert(1);

? ? ? ? var uname = document.getElementById('username');

? ? ? ? var pwd = document.getElementById('input-password');

? ? ? ? var md5pwd = document.getElementById('md5-password');


? ? ?//? ?pwd.value = md5(pwd.value);

? ? ? ? md5pwd.value = md5(pwd.value);

? ? ? ? //可以校驗判斷表單內(nèi)容,true就是通過提交 false就是阻止提交

? ? }

</script>

</body>


</html>

```


## 10、初識jQuery及公式


### 10.1 公式:$(selector).action()



<script>

? ? document.getElementById('id');

? ? //選擇器就是css的選擇器? 獲取id?

? ? $('#test-jquery').click(function () {

? ? ? ? alert('hello,jQuery');


? ? })

</script>










```javascript

<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8">

? ? <title>Title</title>

? ? <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>

? ? <script src="jquery-3.7.0.js"></script>

</head>

<body>

<a href="" id="test-jquery">點我</a>

<!--公式:$(selector).action()-->

<script>

? ? document.getElementById('id');


? ? //選擇器就是css的選擇器

? ? $('#test-jquery').click(function () {

? ? ? ? alert('hello,jQuery');


? ? })

</script>

</body>

</html>

```

### 10.2選擇器

####? ? ?1 原生js,選擇器少,麻煩不好記

##### document.getElementsByTagName();//標(biāo)簽

##### document.getElementById();//ID

##### document.getElementsByClassName(); //類

####? ? ?2 jQuery css 中的選擇器它全部部能用!

#####? ? ?$('p').click(); //標(biāo)簽選擇器

#####? ? ?$('#id1').click(); //id選擇器'

#####? ? ?$('.class1').click() //cLass選擇器



### 文檔工具站:https://jquery.cuishifeng.cn


### 10.3事件?

鼠標(biāo)事件

鍵盤事件

其他事件

$(selector).action()

```javascript

? ? $('.class1').click() //cLass選擇器

? ? $('.class1').mousedown()(jQuery)

? ? $('.class1').mouseenter()(jQuery)

? ? $('.class1').mouseleave()(jQuery)

? ? $('.class1').mousemove()(jQuery)

? ? $('.class1').mouseout()(jQuery)

? ? $('.class1').mouseover()(jQuery)

? ? $('.class1').mouseup()(jQuery)

```



JS map/set函數(shù)對象面向?qū)ο驜OM表單JQuery#20230714的評論 (共 條)

分享到微博請遵守國家法律
曲阜市| 礼泉县| 马关县| 四会市| 洪湖市| 万全县| 建始县| 石狮市| 安仁县| 新余市| 施秉县| 屏山县| 菏泽市| 林州市| 宣化县| 德庆县| 宣威市| 堆龙德庆县| 苍梧县| 沈阳市| 宁德市| 大渡口区| 普洱| 鱼台县| 静乐县| 丰都县| 哈尔滨市| 梅河口市| 梁平县| 莒南县| 平阴县| 麟游县| 友谊县| 漳州市| 津市市| 驻马店市| 灵台县| 土默特右旗| 海盐县| 玛曲县| 新巴尔虎右旗|