###### tags: `六角筆記王` `jQuery`
# jQuery入門
**JavaScript 與 jQuery差別**
- JavaScript要兼容各種瀏覽器比較麻煩
- jQuery是已經幫你寫好兼容性了
- JQuery還是依附在JavaScript 底層
- [jQuery字典](https://oscarotero.com/jquery/)
## :dart:常用語法
```jsx
$('a').hide() /*隱藏a連結*/
$('a').show() /*顯示a連結*/
$('a').attr('href','http://www.yahoo.com.tw') /*arre是增加屬性的意思*/
$('a').slideUp()/*讓a連結被刪除*/
$('a').slideUp(5500)/*讓a連結經過5500(5.5秒)毫秒被刪除*/
$('a').slideDown()/*讓a連結被新增*/
$('a').fadeOut(8000)/*讓a連結經過8000毫秒(8秒)淡出*/
$('button').click(function (e) { /*讓按鈕可以有點擊效果*/
$('a').hide()/*按完按鈕後隱藏*a連結*/;
};
$('button').click(function (e) { /*讓按鈕可以有點擊效果*/
$('a').toggle() /*自動幫你切換開關,搭配按鈕可以做出消失出現切換*/;
};
$('a').slideToggle() /*在toggle的基礎上加上slideup和slidedown效果*/;
$('a').fadeToggle() /*在toggle的基礎上加上fadein和fadeout效果*/;
$('h1').click(function (e) {
$('p').addClass('red'); /*動態增加css*/
});
$('h1').click(function (e) {
$('p').toggleClass('red'); /*用toggle方式增加css*/
});
$('a').attr('href','http://www.yahoo.com.tw');
/*attr是更改屬性,更改了'href'屬性的內容'網址'*/
```
---
**小小比較`slideDown`和`fadeOut`差別:**
終點都是display:none ,但`slideDown` 是高度減少;而`fadeOut` 是透明度減少,最後一瞬間跳none
<br>
## :dart:載入 jQuery
1.到官網下載[.min.js](https://code.jquery.com/jquery-3.6.0.min.js)檔,另存在桌面
2.開啟一個新資料夾把.min.js檔丟入
3.開啟vscode並創立一個新html檔
4.透過`script:src` 載入.min.js檔
```html
<head>
<script src="jquery-3.6.0.min.js"></script>
</head>
```
<br>
## :dart:jQuery環境設定
寫環境的起手式: 為了確保 jQuery已被瀏覽器執行成功,再來執行 jQuery內的程式碼
```jsx
$(document).ready(function(){
/*$('h1').fadeOut(5800) 想寫的指令*/;
});
```
$(' ') 代表的意思:選擇器的概念
$('. content ') 類別選擇器的寫法
<br>
## :dart:jQuery 在codepen的環境設定
1.在 JS 面板,關鍵字尋找 jQuery ,並點擊加入

2.將 HTML 寫在 HTML 面板,jQuery 程式碼寫在 JS 面板
記得一定要寫起手式再開始打程式碼
```jsx
$(document).ready(function(){
});
```
<br>
## :dart:VS Code 上使用的擴充套件:jQuery Code Snippets
下載完[jQuery Code Snippets](https://marketplace.visualstudio.com/items?itemName=donjayamanne.jquerysnippets)就能使用 emmet 來快速開發的話
<br>
## :dart:常用emmet
- `jdr`:jqDocReady(基礎環境起手式)
- 大部分的語法都是`jqXXX`
例如點擊效果是`jqclick` 、顯示效果 `jqshow`
<br>
## :dart:觸發效果的方式
### :seedling:用一個效果觸發另一個效果
第一個效果包住第二個效果
```jsx
$('.button').click(function (e)/*第一個效果*/ {
$('h1').show()/*被觸發的第二個效果*/;
});
```
<br>
### :seedling:用一個效果觸發兩個效果
要記得效果和效果間要用`;`區隔
```jsx
$(h2).click(function (e) {
$(p).slidetoggle();
$('div').hide();
});
```
<br>
### :seedling:jQuery鏈式效果(一個效果完接續下一個效果)
預設一個背景.bg使用鏈式效果搭配slideUp和slideDown會有跳動感
```jsx
$('h3').click(function (e) {
$('.bg').slideUp(1000).slideDown(3000);
});
```
<br>
## :dart:載入css的方式
### :seedling:動態載入css效果
1.先在css寫好一個標籤
```css
.red{
font-size: 30px;
color: red;
}
```
2.在p段落加入(addClass) `'red'(不用再加.)` 效果
```jsx
$('h3').click(function (e) {
$('p').addClass('red'); /*增加css*/
});
```
老師推薦:能用動態載入css就盡量用,這樣在管理css比較方便
<br>
### :seedling:也可以用toggleClass載入css
```jsx
$('h1').click(function (e) {
$('p').toggleClass('red'); /*用toggle方式增加css*/
});
```
<br>
### :seedling:更改屬性(以a連結做範例)
```jsx
$('a').attr('href','http://www.yahoo.com.tw');
attr是更改屬性,我們更改了'href'屬性的內容'網址'
```
<br>
## :dart:event事件
<br>
## :dart:MANIPULATION操縱
<br>
## :dart:動態載入html標籤
```jsx
$('body').html('<h2>新增標籤</h2>');
```
在`body` 中加入`h2`標籤