主頁 > 前端設計 > JavaWeb學習筆記

JavaWeb學習筆記

2021-08-07 08:24:16 前端設計

本博客為學習JavaWeb中的路線筆記,學習地址B站,為了學習專案開發------2021.7.12

文章目錄

  • ** JavaWeb **
    • 一、H5、CSS、JavaScript查缺補漏
      • 1. HTML
      • 2. CSS
      • 3. JavaScript
    • 二、PHP
      • HTML --》 PHP
      • PHP接收
        • 1. 讀取資料
        • 2. 插入資料
    • 三、jQuery
      • 1. 語法
        • 1.1 雜
        • 1.2 jQuery物件的方法
        • 1.3 回圈
        • 1.4 確認彈窗
      • 2. 選擇器
        • 2.1 基本選擇器
        • 2.2 層級選擇器
        • 2.3 過濾選擇器
          • 1. 基本過濾選擇器
          • 2. 內容過濾器
          • 3. 屬性過濾選擇器
          • 4. 表單過濾器
          • 5. 表單物件屬性
      • 3. 篩選
      • 4. 屬性
        • 4.1 HTML代碼/文本/值
        • 4.2 屬性
      • 5. 增刪改操作
        • 5.1 內部插入
        • 5.2 外部插入
        • 5.3 替換
        • 5.4 洗掉
      • 6. CSS
      • 7. 影片操作
        • 7.1 基本影片
        • 7.2 淡入淡出影片
      • 8. 事件操作
        • 8.1 事件的冒泡
        • 8.2 事件物件
        • 樣例:圖片跟隨
    • 四、XMl
      • 1. 語法

** JavaWeb **

學習開始日期:2021.7.12

7.12初學

? 復習了HTML前半部

7.13 三個基礎完成

? 完成了js的大部分

7.14 完成js

? 去老家,晚上回來完成js,

7.21 完成js

? 今天才真正完成了js,暫時不準備繼續javaweb了,感覺我現在學微信小程式比較好,因為干活的這邊可以也搞微信小程式,
— 后來還是選中繼續弄javaweb

8.4 完成jQuery的75%

? 這幾天一直在場子,大概一天看5個左右.
8.5 完成jQuery,計劃今天學完xml

一、H5、CSS、JavaScript查缺補漏

1. HTML

1.1 標簽

名稱作用備注
<hr/>水平線
<br/>換行
<h1>標題標簽位置:align=left center right
<a>超鏈接href 地址
target 新打開視窗= "_self"當前視窗
"_blank"新視窗
<ul>串列type 串列項前面的符號
<img />圖片border邊框大小
alt當路徑找不到圖片時,用來代替的文字
<table>表格align 表格相對于界面的位置
cellspacing 間距(=0不是重疊,是相鄰)
css邊框合并:border-collapse: collapse;
<tr>表格 行align 一行元素在表格中的位置
<td>表格 列align 某一個元素在表格中的位置
rowspan=“2” 內容跨越兩行
colspan=“2” 內容跨越兩行
<th>有設定的列標簽相當于align="center"和<b>
<b>加粗

**1.2 字符物體

更全的:傳送門

常用的幾個:

顯示結果描述物體名稱物體編號
空格&nbsp;
<小于號&lt;<
>大于號&gt;>

**1.3 路徑

相對路徑的點的寫法,這個是web的寫法

. 當前檔案所在的目錄

… 當前檔案所在的上一級目錄

檔案名 當前檔案所在目錄的檔案,想當于 ./檔案名 而./ 可以省略

**1.4 標簽基本屬性

  1. bgcolor – 直接設定背景顏色
  2. onclick – 直接寫javascript的代碼 and 呼叫javascript函式
<body bgcolor="#7fffd4" onclick = "alert('你好');">
	你好
    <div style = "border: 1px solid red">
       123
    </div>
</body>

**1.5 iframe

在頁面上開辟一個小區域顯示一個單獨的界面

利用超鏈接標簽,設定顯示的區域

iframe設定name屬性,a標簽的target設定iframe的name

<iframe src="./other/tao.html" width="1000" height="1000" name="if"></iframe>
<br/>
<a href="other/tao.html" target="if">淘寶</a>
<br/>
<a href="other/index.html" target="if">163郵箱</a>

2. CSS

格式:

選擇器{
    屬性:;
	font-size: 30px;
}

引入css檔案:在head中加入link標簽

    <link rel="stylesheet" type="text/css" href="filename.css" />

選擇器

  1. 標簽名選擇器

    應用于所有的"標簽名"

    標簽名{
        屬性:;
    }
    div{
        border: 1px solid red;
    }
    
  2. id選擇器

    #id名{
        屬性:;
    }
    #id001{
        border: 1px solid red;
    }
    
    應用:
    <div id = "id001">我是一個div</div>
    
  3. class選擇器

    .class名{
        屬性:;
    }
    .class01{
        border: 1px solid red;
    }
    
    應用:
    <div class = "class01">我是一個div</div>
    
  4. 組合選擇器

    選擇器1,選擇器2,選擇器n{
        屬性:;
    }
    .class01 , #id001{
        border: 1px solid red;
    }
    應用:
    <div id = "id001">我是一個div</div>
    <div class = "class01">我是一個div</div>
    

3. JavaScript

引入JS檔案:

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

3.1 變數

雖然是弱型別,但是其實內部是有型別的區別的,

  1. 變數型別:

? 數值型別: number
? 字串型別: string
? 物件型別: object
? 布爾型別: boolean
? 函式型別: function

  1. 特殊值:

? undefined 未定義,所有js變數沒有初始值時都是undefined
? null 空值
? NAN Not a Number 非數字,非數值,(假如數字和字串運算)

  1. 查看變數的型別:
var i = 1;
typeof(i);
所有變數,都可以作為一個Boolean型別的變數使用,認為是false的情況:
0
null
undefined
"" (空串)

3.2 關系運算

1、

等于==簡單的做字面值的比較
全等于===還比較兩個變數的資料型別
        var a = 1;
        var b = "1";
        alert(a == b);  // true
        alert(a === b); // false

2、

&&運算式全為真回傳最后一個運算式的值
&&有一個運算式為假回傳第一個為假的運算式的值
        alert(true && "abc");   // abc
        alert("abc" && null);  // null

3、

||運算式全為假回傳最后一個運算式的值
||只有一個是真回傳第一個為真的運算式的值

其實&&和||也就是,回傳第一個能判斷整個運算值的那個運算式

3.3 陣列

定義格式:

var 陣列名 = [];
var arr = [1,'abc',true];

只要對陣列下標進行賦值,那么就會自動給陣列做擴容操作,

        var arr = ['111'];
        alert( arr.length + "   " + arr[0]); // 111 1
        arr[3] = "123";
        alert(arr.length + "  " + arr[3]);	 // 4 123
        alert(arr[1]);                     	 // undefined

遍歷:

        var a = ['1', 2, false];
        var s = "";
        for (var i = 0; i < a.length; i++) {
            s += "  " + a[i];
        }
        alert(s); //   1  2  false

3.4 函式

兩種定義方法:

function 函式名(引數){    }

function f(a,b){
    alert(a + ' ' + b);
    return a;
}
形參不需要定義,回傳值也不需要
var 函式名 = function(引數){		}

不管是有參無參或者是有回傳值,都和第一種沒有區別

arguments:

如同陣列一樣使用即可,他的值是呼叫時傳的值,

        function f() {
            alert(arguments.length);
            // 像陣列一樣操作
            var ans = "";
            for (var i = 0; i < arguments.length; i++) {
                ans += "  " + arguments[i];
            }
            alert(ans);
        }

        f(1, 2, 3, 4);

3.5 物件

物件的定義:

1.

var 變數名 = new Object();				// 物件實體(空物件)
變數名.屬性 =;						  // 定義一個屬性
變數名.函式名 = function(){};			  // 定義一個函式

物件的訪問:

變數名.屬性 / 函式名();
        var obj = new Object();
        obj.name = "文仔";
        obj.age = 18;
        obj.f = function () {
            alert("name = " + obj.name + "  age = " + obj.age);
        }
        obj.f();

2.

對于定義,也可以:

var 變數名 = {};		// 空物件
var 變數名 = {
    屬性:,			// 定義一個屬性
    屬性:,			// 每個之間加“,” 最后一個不加
    函式名: function(){}
};		
        var obj = {
            name: "哥哥",
            age: 18,
            fun: function () {
                alert("name = " + obj.name + "  age = " + obj.age);
            }
        };
        obj.fun();

3.6 事件

事件名稱備注
onload加載完成事件界面加載完成之后,常用于做界面的js代碼初始化操作
onclick單機事件常用于按鈕的點擊相應操作
onblur失去焦點事件常用于輸入框失去焦點后驗證其輸入內容是否合法
onchange內容發生變化操作常用于下拉串列和和輸入框內容發生改變后操作
onsubmit表單提交事件常用于表單提交前,驗證所有表單項是否合法

1. 事件的注冊(系結)

告訴瀏覽器,當事件相應后要執行哪一些代碼

分為靜態注冊和動態注冊兩種;

  1. 靜態注冊事件:通過html標簽的事件屬性直接賦予事件回應后的代碼,
  2. 動態注冊事件:先通過js代碼得到標簽的dom物件,然后再通過dom物件.事件名=function(){},

動態注冊的步驟:

  1. 獲取標簽物件
  2. 標簽物件.事件名 = function(){};

2. oncload事件

  1. 靜態
 function onloadFun() {
            alert("靜態注冊onload事件");
        }

<body onl oad="onloadFun();"></body>
  1. 動態
        window.onload = function () {
            alert("動態注冊");
        }

2. onclick事件

    <script type="text/javascript">
        function onclickFun() {
            alert("靜態注冊");
        }

        window.onload = function () {
            // 1. 獲取標簽物件
            var btnobj = document.getElementById("btn02");			// z
            // 2. 標簽名.事件名 = function(){}
            btnobj.onclick = function () {
                alert("動態注冊");
            }
        }
    </script>
    
    
	<body>
		<button onclick="onclickFun()">按鈕1</button>
		<button id="btn02">按鈕2</button>
	</body>

3. onblur事件

不寫靜態注冊了,簡潔一些;

靜態注冊就是在html標簽里面呼叫;

動態就是在window.onload = function () {} 里面宣告

        window.onload = function () {
            var pass = document.getElementById("pass");
            var text = document.getElementById("text");
            pass.onblur = function (){
                alert(pass.value);
            }
            text.onblur  = function (){
                alert(text.value);
            }
        }
        
<body>
	<form>
   		<input type="text" id="text"/>
    	<input type="password" id="pass"/>
	</form>
</body>

4. onchange事件

        window.onload = function () {
            var onChangeObj = document.getElementById("select");
            onChangeObj.onchange = function () {
                alert(onChangeObj.value);
            }
        }
        
        
	<body>
		<select id="select">
    		<option>國家</option>
    		<option>中國</option>
    		<option>日本</option>
    		<option>美國</option>
		</select>
	</body>

5. onsubmit事件

 <script type="text/javascript">
        <!--靜態注冊-->
        function onsubFun() {
            var text = document.getElementById("text");
            if (text.value.length < 6) {
                alert("不符合規范");
                return false;
            }
        }

        window.onload = function () {
            var formObj = document.getElementById("form02");
            formObj.onsubmit = function () {
                var text = document.getElementById("te");
                if (text.value.length < 6) {
                    alert("不符合規范");
                    return false;
                }
            }
        }
    </script>


<body>
	<form action="http://www.baidu.com" method="get" onsubmit="return onsubFun()">
    	<input type="text" name="text" id="text"/>
    	<input type="submit" value="靜態注冊"/>
	</form>
	<br/>
	<br/>
	<form action="http://www.baidu.com" id="form02">
    	<input type="text" name="text" id="te"/>
    	<input type="submit" value="動態注冊"/>
	</form>
</body>

3.7 DOM 模型

就是把檔案中的標簽,屬性,文本,轉換成物件來管理,

DOM物件常用的方法:

方法描述
close關閉用 document.open() 方法打開的輸出流,并顯示選定的資料,
getElementById()回傳對擁有指定 id 的第一個物件的參考,
getElementsByName回傳帶有指定名稱的物件集合,
getElementsByTagName回傳帶有指定標簽名的物件集合,
open打開一個流,以收集來自任何 document.write() 或 document.writeln() 方法的輸出,
write向檔案寫 HTML 運算式 或 JavaScript 代碼,
writeln等同于 write() 方法,不同的是在每個運算式之后寫一個換行符

1. 樣例:驗證用戶名

5-12位,且包含下劃線、字母、數字

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>MOMO的網址</title>
    <script type="text/javascript">
        window.onload = function () {
            var btn = document.getElementById("bt");
            var text = document.getElementById("text");
            btn.onclick = function () {
                var userText = text.value;
                /*
                *   test方法用來測驗字串是否符合自己的規則
                 */
                var patt = /^\w{5,12}$/;
                if (patt.test(userText))
                    alert("提交成功");
                else
                    alert("提交失敗");
            }
        }
    </script>
</head>
<body>
<form>
    <input id="text" type="text"/>
    <input id="bt" type="button" value="校驗"/>
</form>
</body>

</html>


2. 正則運算式物件regexp

傳送門

語法傳送門

創建正則運算式物件 :

var patt=new RegExp(pattern運算式,modifiers修飾符);

或更簡單的方法

var patt=/pattern/modifiers; 
  1. 修飾符

修飾符用于執行區分大小寫和全域匹配:

修飾符描述
i執行對大小寫不敏感的匹配,
g執行全域匹配(查找所有匹配而非在找到第一個匹配后停止),
m執行多行匹配,
  1. 運算式

方括號用于查找某個范圍內的字符:

運算式描述
[abc]查找方括號之間的任何字符,
[^abc]查找任何不在方括號之間的字符,
[0-9]查找任何從 0 至 9 的數字,
[a-z]查找任何從小寫 a 到小寫 z 的字符,
[A-Z]查找任何從大寫 A 到大寫 Z 的字符,
[A-z]查找任何從大寫 A 到小寫 z 的字符,
[adgk]查找給定集合內的任何字符,
[^adgk]查找給定集合外的任何字符,

應該都是是否包含以上的條件;

包含 true

不包含 false

  1. 元字符

是擁有特殊含義的字符:

元字符描述
.查找單個字符,除了換行和行結束符,
\w查找數字、字母及下劃線,
\W查找非單詞字符,
\d查找數字,
\D查找非數字字符,
\s查找空白字符,
\S查找非空白字符,
\b匹配單詞邊界,
\B匹配非單詞邊界,
\0查找 NULL 字符,
\n查找換行符,
\f查找換頁符,
\r查找回車符,
\t查找制表符,
\v查找垂直制表符,
\xxx查找以八進制數 xxx 規定的字符,
\xdd查找以十六進制數 dd 規定的字符,
\uxxxx查找以十六進制數 xxxx 規定的 Unicode 字符,
  1. 量詞:
量詞描述
n+匹配任何包含至少一個 n 的字串,
例如,/a+/ 匹配 “candy” 中的 “a”,“caaaaaaandy” 中所有的 “a”,
n*匹配任何包含零個或多個 n 的字串,
例如,/bo*/ 匹配 “A ghost booooed” 中的 “boooo”,“A bird warbled” 中的 “b”,但是不匹配 “A goat grunted”,
n?匹配任何包含零個或一個 n 的字串,
例如,/e?le?/ 匹配 “angel” 中的 “el”,“angle” 中的 “le”,
n{X}匹配包含 X 個 n 的序列的字串,
例如,/a{2}/ 不匹配 “candy,” 中的 “a”,但是匹配 “caandy,” 中的兩個 “a”,且匹配 “caaandy.” 中的前兩個 “a”,
n{X,}X 是一個正整數,前面的模式 n 連續出現至少 X 次時匹配,
例如,/a{2,}/ 不匹配 “candy” 中的 “a”,但是匹配 “caandy” 和 “caaaaaaandy.” 中所有的 “a”,
n{X,Y}X 和 Y 為正整數,前面的模式 n 連續出現至少 X 次,至多 Y 次時匹配,
例如,/a{1,3}/ 不匹配 “cndy”,匹配 “candy,” 中的 “a”,“caandy,” 中的兩個 “a”,匹配 “caaaaaaandy” 中的前面三個 “a”,注意,當匹配 “caaaaaaandy” 時,即使原始字串擁有更多的 “a”,匹配項也是 “aaa”,
n$匹配任何結尾為 n 的字串,
^n匹配任何開頭為 n 的字串,
?=n匹配任何其后緊接指定字串 n 的字串,
?!n匹配任何其后沒有緊接指定字串 n 的字串,
  • runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 號代表前面的字符必須至少出現一次(1次或多次),
  • runoo*b,可以匹配 runob、runoob、runoooooob 等,* 號代表前面的字符可以不出現,也可以出現一次或者多次(0次、或1次、或多次),
  • colou?r 可以匹配 color 或者 colour,? 問號代表前面的字符最多只可以出現一次(0次、或1次),

判斷輸入是否符合規范

innerHTML屬性 : 標識起始標簽和結束標簽中的內容 – 可讀 – 可寫

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>MOMO的網址</title>
    <script type="text/javascript">
        window.onload = function () {
            var patt = /^\w{5,8}$/;
            var usernameObj = document.getElementById("userid");
            usernameObj.onblur = function () {
                var usernameSpanObj = document.getElementById("useridSpan");
                if (patt.test(usernameObj.value) == false) {
                    usernameSpanObj.innerHTML = "不符合規范";
                }else {
                    usernameSpanObj.innerHTML = "";
                }

            }
        }

    </script>
</head>
<body>
<form>
    <input type="text" id="userid">
    <span id="useridSpan" style="color: red"></span>
</form>
</body>

</html>


后面跟著圖片:

    <script type="text/javascript">
        window.onload = function () {
            var patt = /^\w{5,8}$/;
            var usernameObj = document.getElementById("userid");
            usernameObj.onblur = function () {
                var usernameSpanObj = document.getElementById("useridSpan");
                if (patt.test(usernameObj.value) == false) {
                    usernameSpanObj.innerHTML = "<img src=\"https://z3.ax1x.com/2021/07/21/WU66HO.png\" height='25px'>";
                } else {
                    usernameSpanObj.innerHTML = "<img src=\"https://z3.ax1x.com/2021/07/21/WU6yDK.png\" height='25px'>";
                }

            }
        }

    </script>

3. 方法:getElementsByName()

回傳的是多個,也就 是一個包含多個標簽物件的集合

這個集合的操作跟陣列一樣

集合中每個元素都是dom物件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>MOMO的網址</title>
    <script type="text/javascript">
        function checkAll() {
            var hobies = document.getElementsByName("hobby");
            for (var i = 0; i < hobies.length; i++) {
                hobies[i].checked = true;
            }
        }

        function checkNo() {
            var hobies = document.getElementsByName("hobby");
            for (var i = 0; i < hobies.length; i++) {
                hobies[i].checked = false;
            }
        }

        function checkReverse() {
            var hobbies = document.getElementsByName("hobby");
            for (var i = 0; i < hobbies.length; i++) {
                hobbies[i].checked = !hobbies[i].checked;
            }
        }
    </script>
</head>
<body>
<input type="checkbox" name="hobby" value="cpp">C++
<input type="checkbox" name="hobby" value="JS">JS
<input type="checkbox" name="hobby" value="Java">Java
<br/>
<button onclick="checkAll()">全選</button>
<button onclick="checkNo()">全不選</button>
<button onclick="checkReverse()">反選</button>
</body>

</html>


**getElementsByTagName :**按照標簽名進行查詢,并回傳集合,

document查詢的方法就是這三個,

    <script type="text/javascript">
        function checkAll() {
            var hobies = document.getElementsByTagName("input");
            for (var i = 0; i < hobies.length; i++) {
                hobies[i].checked = true;
            }
        }

        function checkNo() {
            var hobies = document.getElementsByTagName("input");
            for (var i = 0; i < hobies.length; i++) {
                hobies[i].checked = false;
            }
        }

        function checkReverse() {
            var hobies = document.getElementsByTagName("input");
            for (var i = 0; i < hobies.length; i++) {
                hobies[i].checked = !hobies[i].checked;
            }
        }
    </script>

3.8 節點的常用屬性和方法

節點就是標簽物件

1. 方法

通過具體的元素節點呼叫:

getElementByTagName();

獲取當前節點的指定標簽名孩子節點

  • appendChild
    為當前節點添加一個新的子節點,放在最后的子節點后
  • cloneNode
    回傳當前節點的拷貝
  • createAttribute
    創建新的屬性
  • createCDATASection
    創建包括給定資料的CDATA段
  • createComment
    創建一個注釋節點
  • createDocumentFragment
    創建DocumentFragment物件
  • createElement 創建一個元素節點
  • createEntityReference
    創建EntityReference物件
  • createNode
    創建給定型別,名字和命名空間的節點
  • createPorcessingInstruction
    創建操作指令節點
  • createTextNode
    創建包括給定資料的文本節點
  • getElementsByTagName
    回傳指定名字的元素集合
  • hasChildNodes
    回傳當前節點是否有子節點
  • insertBefore
    在指定節點前插入子節點
  • Load
    匯入指定位置的XML檔案
  • loadXML
    匯入指定字串的XML檔案
  • removeChild
    從子結點串列中洗掉指定的子節點
  • replaceChild
    從子節點串列中替換指定的子節點
  • Save
    把XML檔案存到指定節點
  • selectNodes
    對節點進行指定的匹配,并回傳匹配節點串列
  • selectSingleNode
    對節點進行指定的匹配,并回傳第一個匹配節點
  • transformNode
    使用指定的樣式表對節點及其后代進行轉換
  • transformNodeToObject
    使用指定的樣式表將節點及其后代轉換為物件

2. 屬性

  • childNodes

    獲取當前節點的所有子節點串列(只讀)

  • Attributes

    獲取節點的屬性串列(只讀),即HTML中標簽上的屬性值a.attributes[0].value

  • dataType
    回傳此節點的資料型別

  • Definition
    以DTD或XML模式給出的節點的定義(只讀)

  • Doctype
    指定檔案型別節點(只讀)

  • documentElement
    回傳檔案的根元素(可讀寫)

  • firstChild
    回傳當前節點的第一個子節點(只讀)

  • Implementation
    回傳XMLDOMImplementation物件

  • lastChild
    回傳當前節點最后一個子節點(只讀)

  • nextSibling
    回傳當前節點的下一個兄弟節點(只讀)

  • nodeName
    回傳節點的名字(只讀)

  • nodeType
    回傳節點的型別(只讀)

  • nodeTypedValue
    存盤節點值(可讀寫)

  • nodeValue
    回傳節點的文本(可讀寫)

  • ownerDocument
    回傳包含此節點的根檔案(只讀)

  • parentNode
    回傳父節點(只讀)

  • Parsed
    回傳此節點及其子節點是否已經被決議(只讀)

  • Prefix
    回傳名稱空間前綴(只讀)

  • preserveWhiteSpace
    指定是否保留空白(可讀寫)

  • previousSibling
    回傳此節點的前一個兄弟節點(只讀)

  • Text
    回傳此節點及其后代的文本內容(可讀寫)

  • url
    回傳最近載入的XML檔案的URL(只讀)

  • Xml
    回傳節點及其后代的XML表示(只讀)

  • nextSibling
    回傳相領的節點

  • innerHTML
    獲取/設定起始標簽和結束標簽中的內容

  • innerText
    獲取/設定起始標簽和結束標簽中的文本

二、PHP

HTML --》 PHP

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>form提交</title>
		<script>
			function f1() {
				var request = new XMLHttpRequest(); //建立request請求

				request.open('post', 'test.php'); //發送物件是boke.php 發送post

				request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); //請求頭 默認即可

				var name = form1.name.value; //獲取文本框內輸入的內容

				request.send("name=" + name); //發送request請求 請求可以有多個post 格式:key1=value1&key2=value2 php端根據key取出value
				//確認接收訊息
				request.onreadystatechange = function() {
					// readyState=4為php收到并回傳值 status為回傳欄位為200火304
					if (request.readyState == 4 && (request.status == 200 || request.status == 304)) {
						//彈出視窗顯示php回傳的值
						alert(request.responseText);
					}
				}

			}
		</script>
	</head>
	<body>
		<form id="form1">
			<input type="text" name="name">
			<!--    點擊按鈕呼叫js的f1方法-->
			<input type="submit" onclick="f1()">
		</form>
	</body>
</html>

PHP接收

$_POST['name']

1. 讀取資料

<?php
$servername = "127.0.0.1";
$username = "root";
$password = "623724";
$dbname = "test_db";

// 創建連接
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("連接失敗: " . $conn->connect_error);
} 
 
$sql = "SELECT col from test";
$result = $conn->query($sql);
 
if ($result->num_rows > 0) {
    // 輸出資料
    while($row = $result->fetch_assoc()) {
        echo "col: " . $row["col"]. "<br>";
    }
} else {
    echo "0 結果";
}
$conn->close();
?>

2. 插入資料



<?php
$servername = "localhost";
$username = "root";
$password = "623724";
$dbname = "test_db";
 
// 創建連接
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢測連接
if ($conn->connect_error) {
    die("連接失敗: " . $conn->connect_error);
} 
 
$sql = "INSERT INTO test VALUES ('".$_POST['name']."')";
 
if ($conn->query($sql) === TRUE) {
    echo "新記錄插入成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
 
$conn->close();
?>

三、jQuery

就是Javascript和查詢(Query)

1. 語法

1.1 雜

  1. 頁面加載完之后:
$(function () {})     ------>		window.onload = function () {}

全寫:$(document).ready(  function () {}  )
  1. HelloWord
        <script type="text/javascript">
            // 表示頁面加載完成之后 相當于      window.onload = function () {}
            $(function () {
            // 獲取Id元素
                var $btnObj = $("#btn01");
                $btnObj.click(function (){
                    alert("JQuery單機");
                });

            });
        </script>
  1. JQuery核心函式 $()

    1. 傳入引數為 【函式】時

      ? 表示頁面加載完成之后,相當于 window.onload = function () {}

    2. 傳入引數為 【HTML字串】時

      ? 根據這個字串創建元素節點物件

              <script type="text/javascript">
                  // 表示頁面加載完成之后 相當于      window.onload = function () {}
                  $(function () {
                      // 新加入btn02
                      $("<button id=\"btn02\">測驗按鈕02</button>\n").appendTo("body");
      
                      // 為新加的btn02設定點擊事件
                      $("#btn02").click(function () {
                          alert("123");
                      });
                  });
      
              </script>
      
    3. 傳入引數為 【選擇器字串】時

      1. $("#id屬性值")
      2. $(“標簽名”)
      3. $(".class屬性值")
    4. 傳入引數為 【DOM物件】時

      ? 會把DOM物件轉換成jQuery物件

      ? jQuery物件是dom物件的陣列 + jQuery提供的一系列功能函式

    5. 接4:dom物件和jQuery物件使用的區別

      1. dom物件的方法jQuery物件是用不了的
      2. jQuery物件的方法dom物件是用不了的
      3. 可以將jQuery物件作為陣列使用,$jq_name[i] 直接就可以呼叫
              <script type="text/javascript">
                  $(function () {
                      var $btn = $("#btn01");
                      // 這樣就是一個dom物件了
                      alert($btn[0].innerText);
                  });
              </script>
      
  2. Dom物件和jQuery物件互轉

    1. dom --> jQuery
      1. 先有DOM物件
      2. $(DOM物件)就可以轉換成jQuery物件
    2. jQuery --> dom
      1. 先有jQuery物件
      2. jQuery物件[下標] 取出相應的DOM物件
  3. 除了上面三種基本選擇器,還有一種是組合選擇器

    將每一個選擇器匹配到的元素合并后一起回傳,你可以指定任意多個選擇器,并將匹配到的元素合并到一個結果內,

    HTML:
    <div>div</div>
    <p class="myClass">p class="myClass"</p>
    <span>span</span>
    <p class="notMyClass">p class="notMyClass"</p>
    
    jQuery:
    $("div,span,p.myClass")
    div標簽,span標簽,p標簽的class是myClass的元素
    
    
    結果:
    [ <div>div</div>, 
     <p class="myClass">p class="myClass"</p>,
     <span>span</span> ]
     
    結果的順序是HTML中的順序!!!
    

1.2 jQuery物件的方法

  1. css()方法

    直接設定css樣式
    $("#div01").css("background-color", "#bbffaa");
    
  2. attr()方法

    修改屬性值,.attr(name, value)

  3. val()

    可以操作表單項的value屬性值,可以設定和獲取

1.3 回圈

使用each方法:obj.each(套函式);

this就是當前的物件

例子?:獲取當前勾選的多選框

html:

		<button id="btn01">確定</button>
        <input type="checkbox" name="c" value="1">1
        <input type="checkbox" name="c" value="2">2
        <input type="checkbox" name="c" value="3">3
        <input type="checkbox" name="c" value="4">4

js:

 $(function () {
                $("#btn01").click(function ()    {
                    var $checkboxs = $(":checkbox:checked");
                    $checkboxs.each(function () {
                        alert(this.value);			// 當前的物件
                    })
                });
            });

1.4 確認彈窗

點擊“確認”–回傳true

點擊“取消”–回傳false

confirm("你好呀")

2. 選擇器

2.1 基本選擇器

在1.3中

2.2 層級選擇器

  1. 在給定的祖先元素下匹配所有的后代元素HTML 代碼:

    <form>
      <label>Name:</label>
      <input name="name" />
      <fieldset>
          <label>Newsletter:</label>
          <input name="newsletter" />
     </fieldset>
    </form>
    <input name="none" />
    

    jQuery 代碼:

    $("form input")
    

    結果:

    [ <input name="name" />, <input name="newsletter" /> ]
    
  2. parent > child :在給定的父元素下匹配所有的子元素(低一級)

    ? HTML 代碼:

    <form>
      <label>Name:</label>
      <input name="name" />
      <fieldset>
          <label>Newsletter:</label>
          <input name="newsletter" />  // 這個不是子級元素
     </fieldset>
    </form>
    <input name="none" />
    

    jQuery 代碼:

    $("form > input")
    

結果:

[ <input name="name" /> ]
  1. prev + next :匹配所有緊接在 prev 元素后的 next 元素 (prev后面的一個元素,成對)

HTML 代碼:

<form>
  <label>Name:</label>
  <input name="name" />			// 1
  <input name="name02" />		// 這個不算
  <fieldset>
      <label>Newsletter:</label>
      <input name="newsletter" />	// 2
 </fieldset>
</form>
<input name="none" />

jQuery 代碼:

$("label + input")

結果:

[ <input name="name" />, <input name="newsletter" /> ]
  1. prev ~ siblings :匹配 prev 元素之后的所有 siblings 元素**(同輩的所有)**

HTML 代碼:

<form>
  <label>Name:</label>
  <input name="name" />
  <fieldset>
      <label>Newsletter:</label>
      <input name="newsletter" />
 </fieldset>
</form>
<input name="none" />

jQuery 代碼:

$("form ~ input")

結果:

[ <input name="none" /> ]

2.3 過濾選擇器

1. 基本過濾選擇器
  1. :first

    獲取第一個元素

    HTML 代碼:

    <ul>
        <li>list item 1</li>
        <li>list item 2</li>
        <li>list item 3</li>
        <li>list item 4</li>
        <li>list item 5</li>
    </ul>
    

    jQuery 代碼:

    $('li:first');
    

    結果:

    [ <li>list item 1</li> ]
    
  2. :last()

獲取最后個元素

HTML 代碼:

<ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li>
</ul>

jQuery 代碼:

$('li:last')

結果:

[ <li>list item 5</li> ]
  1. :not(selector)

去除所有與給定選擇器匹配的元素

在jQuery 1.3中,已經支持復雜選擇器了(例如:not(div a) 和 :not(div,a))

HTML 代碼:

<input name="apple" />
<input name="flower" checked="checked" />

jQuery 代碼:

$("input:not(:checked)")
結果:
[ <input name="apple" /> ]
  1. :even

    先找到所有此標簽的元素序列,但是只回傳偶數下標的元素(0,2,4…); 也就是第1,3,5個…

    HTML 代碼:

    <table>
      <tr><td>Header 1</td></tr>
      <tr><td>Value 1</td></tr>
      <tr><td>Value 2</td></tr>
    </table>
    

    jQuery 代碼:

    $("tr:even")
    

結果:

[ <tr><td>Header 1</td></tr>, <tr><td>Value 2</td></tr> ]
  1. :odd

奇數下標:用法同even

  1. :eq(index)

HTML 代碼:

<table>
  <tr><td>Header 1</td></tr>
  <tr><td>Value 1</td></tr>
  <tr><td>Value 2</td></tr>
</table>

jQuery 代碼:

$("tr:eq(1)")

結果:

[ <tr><td>Value 1</td></tr> ]
  1. :gt(index)

匹配所有大于給定索引值的元素

HTML 代碼:

<table>
  <tr><td>Header 1</td></tr>
  <tr><td>Value 1</td></tr>
  <tr><td>Value 2</td></tr>
</table>

jQuery 代碼:

$("tr:gt(0)")

結果:

[ <tr><td>Value 1</td></tr>, <tr><td>Value 2</td></tr> ]
  1. :lt(index)

    匹配所有小于給定索引值的元素,用法同gt

  2. :header

匹配如 h1, h2, h3之類的標題元素

$(":header").css("background", "#EEE");
  1. :animated
匹配所有正在執行影片效果的元素
2. 內容過濾器
過濾器作用用法
:contains(text)匹配包含給定文本的元素$("div:contains('John')")
只要包含’John’的div
:empty匹配所有不包含子元素或者文本的空元素$("td:empty")
空的td
:parent匹配含有子元素或者文本的元素就是非空的
:has(selector)匹配含有選擇器所匹配的元素的元素$("div:has(p)")
查找包含p標簽的div
3. 屬性過濾選擇器
過濾器作用用法
[attribute]匹配包含給定屬性的元素,$("div[id]")
有id屬性的div
[attribute=value]匹配給定的屬性是某個特定值的元素$("input[name='newsletter']").attr("checked", true);
查找所有 name 屬性是 newsletter 的 input 元素
[attribute!=value]匹配所有不含有指定的屬性,或者屬性不等于特定值的元素,同上;注意沒有這個屬性的也被選中
[attribute^=value]匹配給定的屬性是以某些值開始的元素下面:
  • HTML 代碼:
    <input name="newsletter" />
    <input name="milkman" />
    <input name="newsboy" />
    
    jQuery 代碼:
    $("input[name^='news']")
    
    結果:
    [ <input name="newsletter" />, <input name="newsboy" /> ]
    
[attribute$=value]匹配給定的屬性是以某些值結尾的元素同上
[attribute=value]*匹配給定的屬性是以包含某些值的元素$("input[name*='man']")
查找所有 name 包含 ‘man’ 的 input 元素
[selector1][selector2][selectorN]復合屬性選擇器,需要同時滿足多個條件時使用,$("input[id][name$='man']")
找到所有含有 id 屬性,并且它的 name 屬性是以 man 結尾的
4. 表單過濾器

就是過濾幾個表單,

  • :input 匹配所有的input元素

  • :text 匹配type是text的表單元素

  • 其他的表單也是這樣

    • 例子:查找所有文本框

      HTML 代碼:

      <form>
        <input type="text" />
        <input type="checkbox" />
        <input type="radio" />
        <input type="image" />
        <input type="file" />
        <input type="submit" />
        <input type="reset" />
        <input type="password" />
        <input type="button" />
        <select><option/></select>
        <textarea></textarea>
        <button></button>
      </form>
      

jQuery 代碼:

```js
$(":text")
```

 結果:

```js
[ <input type="text" /> ]
```
5. 表單物件屬性
  1. :enabled

    匹配所有可用元素,就是正常元素

    $("input:enabled")
    
  2. :disabled

匹配所有不可用元素

HTML 代碼:

<form>
  <input name="email" disabled="disabled" />		// 通過disabled設定
  <input name="id" />
</form>

jQuery 代碼:

$("input:disabled")

結果:

[ <input name="email" disabled="disabled" /> ]
  1. :checked

    匹配所有選中的被選中元素(復選框、單選框等,不包括select中的option)

  2. :selected

    匹配所有選中的option元素

    HTML 代碼:

    <select>
      <option value="1">Flowers</option>
      <option value="2" selected="selected">Gardens</option>
      <option value="3">Trees</option>
    </select>
    

    jQuery 代碼:

    $("select option:selected")
    層級選擇器 + 過濾選擇器
    

    結果:

    [ <option value="2" selected="selected">Gardens</option> ]
    

樣例:

html:

        <button id="btn01">確定</button>
        <select multiple="multiple"> // 可以多選
            <option>張崇文</option>
            <option selected="selected">齊文欣</option>
            <option>爸爸</option>
            <option>媽媽</option>
        </select>

js:

            $(function () {
                $("#btn01").click(function ()    {
                    $selectes = $("select option:selected");
                    $selectes.each(function () {
                        alert(this.innerText);
                    })
                });
            });

3. 篩選

  • 過濾

    • eq(index|-index)

      • $("p").eq(1),p標簽中的第二個
    • first()

    • last()

    • filter(expr|obj|ele|fn)

      • 篩選出與指定運算式匹配的元素集合,

        這個方法用于縮小匹配的范圍,用逗號分隔多個運算式

        里面就可以寫多個過濾器條件

    • is(expr|obj|ele|fn)

      • 根據選擇器、DOM元素或 jQuery 物件來檢測匹配元素集合,如果其中至少有一個元素符合這個給定的運算式就回傳true,也可以寫一個函式,回傳true或false
    • has(expr|ele)

      • 回傳 含有指定元素 的元素
    • not(expr|ele|fn)

      • 洗掉所匹配選擇器的元素
  • 查找

    • children([expr])
      • 查詢匹配的元素
    • find(expr|obj|ele)
      • 匹配的后代的元素
    • next([expr])
      • 回傳當前元素的下一個兄弟元素
    • nextall([expr])
      • 回傳當前元素后面的 所有兄弟元素
    • nextUntil([exp|ele][,fil])
      • 一個區間:(當前元素, 匹配的元素) 左開右開
    • parent([expr])
      • 回傳父元素
    • prev([expr])
      • 回傳當前元素的上一個兄弟元素
    • prevall([expr])
      • 回傳當前元素的 前面全部的的元素
    • prevUntil([exp|ele][,fil])
      • (匹配的元素,當前元素)
    • siblings([expr])
      • 回傳所有兄弟元素
    • add()
      • 將匹配的元素添加到當前的元素集合中,并回傳

4. 屬性

4.1 HTML代碼/文本/值

不傳引數是獲取,傳遞引數是設定

屬性作用備注
html()設定和獲取 起始標簽和結束標簽中的內容和dom屬性 innerHTML 一樣
text()設定和獲取 起始標簽和結束標簽中本文和dom屬性 innerText 一樣
val()設定和獲取 表單項的value值和dom屬性 value 一樣

val()例子:

html:

    <body>
        <button id="btn01">確定</button>
        <form>
            <!--            單選-->
            <input type="radio" value="1" name="1">1
            <input type="radio" value="2" name="1">2
            <input type="radio" value="3" name="1">3
            <br/>
            <br/>
            <!--    復選-->
            <input type="checkbox" value="4" name="1">4
            <input type="checkbox" value="5" name="1">5
            <input type="checkbox" value="6" name="1">6
        </form>
    </body>

js:

            $(function () {
                $("#btn01").click(function () {
                    // $(":radio").val(['1']);
                    // $(":checkbox").val(['4','5']);
                //    同時設定多個
                    $(":radio,:checkbox").val(['1','6', '5']);
                });
            });

4.2 屬性

屬性作用備注
attr()可以設定和獲取屬性的值一個引數:獲取指定引數的屬性值,
兩個引數:設定指定引數的屬性值
當前引數沒有設定的情況下回傳undefined(官方認為這是錯誤的)
不推薦操作:checked、readOnly、selected、disabled
prop()可以設定和獲取屬性的值當前引數沒有設定的情況下回傳false
選中的時候回傳true
只推薦操作:checked、readOnly、selected、disabled

HTML<body>
        <button id="btn01">確定</button>
        <input type="text" name="text">
    </body>

JS$(function () {
                $("#btn01").click(function () {
                    // 獲取
                    alert($(":text").attr("name"));
                    //    設定
                    $(":text").attr("name", "changeName");
                });
            });
    <body>
        <button id="btn01">確定</button>
        <input type="checkbox" checked="checked" >多選
    </body>




            $(function () {
                $("#btn01").click(function () {
                    $(":checkbox").prop("checked", false);
                });
            });

5. 增刪改操作

5.1 內部插入

方法作用備注
appendTo把a插入到b的子元素末尾,成為最后一個子元素a.appendTo(b)
prependTo把a插入到b的子元素前面,成為第一個子元素a.prependTo(b)

5.2 外部插入

方法作用備注
insertAfter()得到baa.insertAfter(b)
insertBefore()得到aba.insertBefore(b)

5.3 替換

方法作用備注
replaceWith()用一個b替換掉所有的aa.replaceWith(b)
replaceAll()用a替換掉b(一個換一個)a.replaceAll(b)

5.4 洗掉

方法作用備注
remove()洗掉a標簽a.remove()
empty()清空a標簽內的內容a.empty()

6. CSS

方法作用備注
addClass添加樣式
removeClass洗掉樣式洗掉全部獲取其中幾個
toggleClass添加/洗掉樣式當前樣式,有就添加,沒有洗掉
offset獲取/改變坐標
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
        <script type="text/javascript">
            $(function () {
                var $d = $("div");
                // 增加樣式
                $("#btn01").click(function () {
                    // 多個樣式用空格分開
                    $d.addClass("redColor border");
                });

                //  洗掉樣式
                $("#btn02").click(function () {
                    // 不加引數是洗掉全部的樣式
                    $d.removeClass("redColor");
                });

                //  洗掉或者添加樣式
                $("#btn03").click(function () {
                    // 有就洗掉 沒有就添加
                    // 沒有引數的時候,看以前的樣式,一開始設定為空,再點就還原
                    $d.toggleClass("blackColor");
                });

                $("#btn04").click(function () {
                    console.log($d.offset());
                    $d.offset({
                        top: 100,
                        left: 50
                    });
                    console.log($d.offset());

                });
            });


        </script>
        <style type="text/css">
            div.redColor {
                background: red;
            }

            div.border {
                border: yellow 30px solid;
            }

            div.blackColor {
                background: black;
            }
        </style>
    </head>
    <body>
        <div style="height: 300px; width: 300px">3</div>
        <button id="btn01">addClass</button>
        <button id="btn02">removeClass</button>
        <button id="btn03">toggleClass</button>
        <button id="btn04">offset</button>

    </body>
</html>

7. 影片操作

以下影片操作都可以添加引數:

  1. 第一個引數是時長,以毫秒為單位:1000ms=1s,(寬高慢慢變化)
  2. 第二個引數是影片完成后的回呼函式(影片完成后自動呼叫 的函式);

7.1 基本影片

方法作用備注
show隱藏元素顯示
hide可見元素隱藏
toggle可見就隱藏;不可見就顯示

7.2 淡入淡出影片

方法作用備注
fadeIn淡入
fadeOut淡出
fadeTo在指定時長內將透明度修改到指定的值0透明
0.5半透明
1可見
三個引數:時間、透明度、回呼函式
fadeTOggle淡入/淡出
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
        <script type="text/javascript">
            $(function () {
                var $d = $("div");
                $("#btn01").click(function () {
                    $d.show();
                });

                $("#btn02").click(function () {
                    $d.hide();
                });

                $("#btn03").click(function () {
                    $d.toggle(1000, f);
                });

                $("#btn04").click(function () {
                    $d.fadeIn();
                });

                $("#btn05").click(function () {
                    $d.fadeOut();
                });
                $("#btn06").click(function () {
                    $d.fadeIn();
                });
                $("#btn07").click(function () {
                    $d.fadeTo(1000, 0.5, function () {
                        alert("fadeTo完成");
                    });
                });

                // 回圈
                function f() {
                    $d.toggle(1000, f);
                }
            });


        </script>
        <style type="text/css">
        </style>
    </head>
    <body>
        <div style="height: 300px; width: 300px; background: antiquewhite; border: aqua 10px solid">3</div>
        <button id="btn01">show</button>
        <button id="btn02">hide</button>
        <button id="btn03">toggle</button>
        <button id="btn04">fadeIn</button>
        <button id="btn05">fadeOut</button>
        <button id="btn06">fadeTo</button>
        <button id="btn07">fadeToggle</button>

    </body>
</html>

8. 事件操作

頁面加載完成之后的區別:

  • js原生:頁面加載完成之后,除了需要等瀏覽器內核決議完便簽創建好DOM物件,還要等標簽顯示時需要的內容加載完成,如果是多個,只會執行最后一個,
  • jQuery:頁面加載完成之后,等瀏覽器內核決議完便簽創建好DOM物件就會馬上執行,如果是多個,會依次執行,
方法作用備注
click傳function函式是系結事件
不傳引數是觸發事件
mouseover滑鼠移入事件
mouseout滑鼠移出使事件
bind可以給元素一次性系結一個或多個事件多個事件用空格分開
.bind(“click mouseover”, function(){});
one使用上和bind一樣,但是只會相應一次設定的事件,只運行一次
unbind和bind方法相反:解除事件的系結可以解除一個或者多個
live也是用來系結事件,它可以用來系結選擇器匹配的所有元素的事件,以后創建的(動態創建)也會系結
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
        <script type="text/javascript">
            $(function () {
                $("h3:eq(0)").bind("click mouseover mouseout", function () {
                    console.log("這是bind系結的事件");
                });
                $("button:eq(0)").click(function () {
                    $("h3").click();
                });
                $("h3:eq(1)").one("click mouseover mouseout", function () {
                    console.log("這是one系結的事件");
                });

                $("button:eq(1)").click(function () {
                    $("h3").unbind("click");
                });

                $("h2").live("click", function () {
                    console.log("這是live系結的事件");
                });
				// 由于上面設定了live 所以新設定的事件也是有效的
                $("button:eq(2)").click(function () {
                    $("<h2>新的H2</h2>").appendTo( $("h2").first());
                });

            });


        </script>
        <style type="text/css">
        </style>
    </head>
    <body>
        <h3 style="background: aqua">h3的事件</h3>
        <button>觸發h3的事件</button>
        <h3 style="background: aqua">h3的事件</h3>
        <button>移出h3的事件</button>
        <br/>
        <br/>
        <h2>live事件</h2>
        <button>新建h2</button>
    </body>
</html>

8.1 事件的冒泡

就是在父元素和子元素系結了相同的事件,如果子元素觸發,那么父元素也會觸發,這就是冒泡,

可以在子元素中return false; 來組織冒泡的發生,

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
        <script type="text/javascript">
            $(function () {
                $("div").click(function () {
                    alert("這是div事件");
                });
                $("span").click(function () {
                    alert("這是span事件");
                    //    在子元素中return false;  可以阻止冒泡
                    return false;
                });
            });
        </script>
        <style type="text/css">
        </style>
    </head>
    <body>
        <div style="height: 300px; width: 200px; background: antiquewhite">
            這是一個div
            <br/>
            <span>
                這是一個span
            </span>
        </div>
    </body>
</html>

8.2 事件物件

事件物件是封裝觸發的事件資訊的一個js物件

獲取:在事件的fucntion(event){}引數串列中添加一個引數,引數名習慣取為event

event就是事件物件

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
        <script type="text/javascript">
            //  原生js事件物件
            window.onload = function () {
                document.getElementById("div01").onclick = function (event) {
                    console.log(event);
                };

            }
            $(function () {
                //  jQuery事件物件
                $("#div02").click(function (event) {
                    console.log(event);
                });
                //  獲取事件物件,判斷是何種事件
                $("#div03").bind("click mouseover", function (event) {
                    if (event.type == "click")
                        console.log("滑鼠點擊事件");
                    if (event.type == "mouseover")
                        console.log("滑鼠移入事件");
                })
            });


        </script>
        <style type="text/css">
        </style>
    </head>
    <body>
        <div id="div01" style="height: 300px; width: 200px; background: antiquewhite">
            原生js事件物件
        </div>
        <div id="div02" style="height: 300px; width: 200px; background: darkred">
            jQuery事件物件
        </div>
        <div id="div03" style="height: 300px; width: 200px; background: yellow">
            bind事件系結,然后獲取是何種事件觸發
        </div>
    </body>
</html>

樣例:圖片跟隨

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
        <script type="text/javascript">
            $(function () {
                var $img = $("#img02");
                $img.hide();
                $("#img01").bind("mouseover mouseout mousemove", function (event) {
                    if (event.type == "mouseover") {
                        $img.show();
                    } else if (event.type == "mouseout") {
                        $img.hide();
                    } else if (event.type == "mousemove") {
                        $img.offset({
                            left: event.pageX + 3,
                            top: event.pageY + 3
                        });
                    }
                });
            });
        </script>
        <style type="text/css">
        </style>
    </head>
    <body>
        <img id="img01" src="../imagin/niu.jpg" height="100px">
        <div>
            <img id="img02" src="../imagin/niu.jpg">
        </div>
    </body>
</html>

四、XMl

1. 語法

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/292193.html

標籤:其他

上一篇:【已解決】jQuery+ajax+Go上傳Excel檔案

下一篇:JavaScript入門第十二章(陣列回圈嵌套)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more