-
Notifications
You must be signed in to change notification settings - Fork 0
/
search.xml
177 lines (90 loc) · 69.1 KB
/
search.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title>jQuery</title>
<link href="/2022/11/18/jQuery/"/>
<url>/2022/11/18/jQuery/</url>
<content type="html"><![CDATA[<h1 id="JavaScript-jQuery库"><a href="#JavaScript-jQuery库" class="headerlink" title="JavaScript jQuery库"></a>JavaScript jQuery库</h1><hr><h2 id="1-概述"><a href="#1-概述" class="headerlink" title="1.概述"></a>1.概述</h2><p>###1.1 概念</p><blockquote><p>jQuery 是一个快速、简洁的 JavaScript 库,其设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。</p></blockquote><h3 id="1-2-优点"><a href="#1-2-优点" class="headerlink" title="1.2 优点"></a>1.2 优点</h3><blockquote><ul><li>轻量级。核心文件才几十kb,不会影响页面加载速度</li><li>跨浏览器兼容。基本兼容了现在主流的浏览器</li><li>链式编程、隐式迭代</li><li>对事件、样式、动画支持,大大简化了DOM操作</li><li>支持插件扩展开发。有着丰富的第三方的插件,例如:树形菜单、日期控件、轮播图等</li><li>免费、开源</li></ul></blockquote><h2 id="2-jQuery-的基本使"><a href="#2-jQuery-的基本使" class="headerlink" title="2. jQuery 的基本使"></a><strong>2. jQuery</strong> 的基本使</h2><h3 id="2-1-jQuery-的入口函数"><a href="#2-1-jQuery-的入口函数" class="headerlink" title="2.1 jQuery 的入口函数"></a>2.1 jQuery 的入口函数</h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">$(<span class="keyword">function</span> (<span class="params"></span>) { </span><br><span class="line"> ... <span class="comment">// 此处是页面 DOM 加载完成的入口</span></span><br><span class="line"> }) ; </span><br><span class="line"></span><br><span class="line"> </span><br><span class="line">$(<span class="variable language_">document</span>).<span class="title function_">ready</span>(<span class="keyword">function</span>(<span class="params"></span>){</span><br><span class="line"> ... <span class="comment">// 此处是页面DOM加载完成的入口</span></span><br><span class="line">}); </span><br><span class="line"></span><br></pre></td></tr></table></figure><blockquote><ol><li>等着 DOM 结构渲染完毕即可执行内部代码,不必等到所有外部资源加载完成,jQuery 帮我们完成了封装。</li><li>相当于原生 js 中的 DOMContentLoaded。</li><li>不同于原生 js 中的 load 事件是等页面文档、外部的 js 文件、css文件、图片加载完毕才执行内部代码。</li><li>更推荐使用第一种方式。</li></ol></blockquote><h3 id="2-2-jQuery-对象和DOM对象"><a href="#2-2-jQuery-对象和DOM对象" class="headerlink" title="2.2 jQuery 对象和DOM对象"></a>2.2 <strong>jQuery</strong> 对象和DOM对象</h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"># <span class="number">1.</span> <span class="variable constant_">DOM</span> 对象转换为 jQuery 对象: $(<span class="variable constant_">DOM</span>对象)</span><br><span class="line">$(<span class="string">'div'</span>)</span><br><span class="line"></span><br><span class="line"># jQuery 对象转换为 <span class="variable constant_">DOM</span> 对象(两种方式)</span><br><span class="line">$(<span class="string">'div'</span>)[index] index是索引号</span><br><span class="line"></span><br><span class="line">$(<span class="string">'div'</span>) .<span class="title function_">get</span>(index) index 是索引号 </span><br><span class="line"></span><br></pre></td></tr></table></figure><p><font color="RedOrange">注意:只有 jQuery 对象才能使用 jQuery 方法,DOM 对象则使用原生的 JavaScirpt 方法。</font></p><h2 id="3-jQuery选择器"><a href="#3-jQuery选择器" class="headerlink" title="3. jQuery选择器"></a><strong>3. jQuery</strong>选择器</h2><h3 id="3-1-jQuery-基础选择器"><a href="#3-1-jQuery-基础选择器" class="headerlink" title="3.1 jQuery 基础选择器"></a>3.1 jQuery 基础选择器</h3><blockquote><p>$(“选择器”) // 里面选择器直接写 CSS 选择器即可,但是要加引号 </p></blockquote><p><img src="/2022/11/18/jQuery/image.png" alt="image"></p><h3 id="3-2-jQuery-层级选择器"><a href="#3-2-jQuery-层级选择器" class="headerlink" title="3.2 jQuery 层级选择器"></a>3.2 jQuery 层级选择器</h3><p><img src="/2022/11/18/jQuery/image-20221107143023405.png" alt="image-20221107143023405"></p><h3 id="3-3-隐式迭代(重要)"><a href="#3-3-隐式迭代(重要)" class="headerlink" title="3.3 隐式迭代(重要)"></a>3.3 隐式迭代(重要)</h3><blockquote><p>遍历内部 DOM 元素(伪数组形式存储)的过程就叫做<strong>隐式迭代</strong></p><p>简单理解:给匹配到的所有元素进行循环遍历,执行相应的方法,而不用我们再进行循环,简化我们的操作,方便我们调用。</p></blockquote><h3 id="3-4-jQuery-筛选选择器"><a href="#3-4-jQuery-筛选选择器" class="headerlink" title="3.4 jQuery 筛选选择器"></a>3.4 <strong>jQuery</strong> <strong>筛选选择器</strong></h3><p><img src="/2022/11/18/jQuery/image-20221107143212580.png" alt="image-20221107143212580"></p><h3 id="3-5-jQuery-筛选方法(重点)"><a href="#3-5-jQuery-筛选方法(重点)" class="headerlink" title="3.5 jQuery 筛选方法(重点)"></a>3.5 <strong>jQuery</strong> <strong>筛选方法(重点)</strong></h3><p><img src="/2022/11/18/jQuery/image-20221107143255301.png" alt="image-20221107143255301"></p><p><font color="RedOrange">重点记住: parent() children() find() siblings() eq()</font></p><p>###3.6 <strong>jQuery</strong> 里面的排他思想</p><blockquote><p>想要多选一的效果,排他思想:当前元素设置样式,其余的兄弟元素清除样式。</p></blockquote><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">$(<span class="variable language_">this</span>).<span class="title function_">css</span>(“color”,”red”);</span><br><span class="line">$(<span class="variable language_">this</span>).<span class="title function_">siblings</span>(). <span class="title function_">css</span>(“color”,””);</span><br></pre></td></tr></table></figure><h2 id="4-jQuery-样式操作"><a href="#4-jQuery-样式操作" class="headerlink" title="4. jQuery 样式操作"></a><strong>4. jQuery</strong> 样式操作</h2><h3 id="4-1-操作-css-方法"><a href="#4-1-操作-css-方法" class="headerlink" title="4.1 操作 css 方法"></a>4.1 操作 css 方法</h3><blockquote><p>jQuery 可以使用 css 方法来修改简单元素样式; 也可以操作类,修改多个样式。</p></blockquote><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"># <span class="number">1.</span> 参数只写属性名,则是返回属性值</span><br><span class="line">$(<span class="variable language_">this</span>).<span class="title function_">css</span>(<span class="string">''</span>color<span class="string">''</span>);</span><br><span class="line"></span><br><span class="line"># <span class="number">2.</span> 参数是属性名,属性值,逗号分隔,是设置一组样式,属性必须加引号,值如果是数字可以不用跟单位和引号</span><br><span class="line">$(<span class="variable language_">this</span>).<span class="title function_">css</span>(<span class="string">''</span>color<span class="string">''</span>, <span class="string">''</span>red<span class="string">''</span>);</span><br><span class="line"># <span class="number">3.</span> 参数可以是对象形式,方便设置多组样式。属性名和属性值用冒号隔开, 属性可以不用加引号</span><br><span class="line"></span><br><span class="line">$(<span class="variable language_">this</span>).<span class="title function_">css</span>({ <span class="string">"color"</span>:<span class="string">"white"</span>,<span class="string">"font-size"</span>:<span class="string">"20px"</span>});</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="4-2-设置类样式方法"><a href="#4-2-设置类样式方法" class="headerlink" title="4.2 设置类样式方法"></a><strong>4.2 设置类样式方法</strong></h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"># <span class="number">1.</span>添加类</span><br><span class="line">$(<span class="string">"div"</span>).<span class="title function_">addClass</span>(<span class="string">"current"</span>);</span><br><span class="line"></span><br><span class="line"># <span class="number">2.</span>移除类</span><br><span class="line">$(<span class="string">"div"</span>).<span class="title function_">removeClass</span>(<span class="string">"current"</span>);</span><br><span class="line"></span><br><span class="line"># <span class="number">3.</span>切换类</span><br><span class="line">$(<span class="string">"div"</span>).<span class="title function_">toggleClass</span>(<span class="string">"current"</span>);</span><br></pre></td></tr></table></figure><h3 id="4-3-类操作与className区别"><a href="#4-3-类操作与className区别" class="headerlink" title="4.3 类操作与className区别"></a>4.3 类操作与className区别</h3><blockquote><ul><li>原生 JS 中 className 会覆盖元素原先里面的类名。</li><li>jQuery 里面类操作只是对指定类进行操作,不影响原先的类名。</li></ul></blockquote><h2 id="5-jQuery-效果"><a href="#5-jQuery-效果" class="headerlink" title="5. jQuery 效果"></a><strong>5. jQuery</strong> <strong>效果</strong></h2><p>###<strong>5.1 显示隐藏效果</strong></p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"># <span class="number">1.</span>显示语法规范</span><br><span class="line"><span class="title function_">show</span>([speed],[easing],[fn]])</span><br><span class="line"></span><br><span class="line"># <span class="number">2.</span>隐藏语法规范</span><br><span class="line"><span class="title function_">hide</span>([speed],[easing],[fn]])</span><br><span class="line"></span><br><span class="line"># <span class="number">3.</span>切换语法规范</span><br><span class="line"><span class="title function_">toggle</span>([speed],[easing],[fn]])</span><br></pre></td></tr></table></figure><blockquote><p><strong>参数</strong></p><ol><li>参数都可以省略, 无动画直接显示。</li><li>speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。</li><li>easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。</li><li>fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。</li></ol><p><font color="RedOrange"> 建议:平时一般不带参数,直接显示隐藏即可。</font></p></blockquote><h3 id="5-2-滑动效果"><a href="#5-2-滑动效果" class="headerlink" title="5.2 滑动效果"></a>5.2 <strong>滑动效果</strong></h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"># <span class="number">1.</span>下滑效果语法规范</span><br><span class="line"><span class="title function_">slideDown</span>([speed],[easing],[fn]])</span><br><span class="line"></span><br><span class="line"># <span class="number">2.</span>上滑效果语法规范</span><br><span class="line"><span class="title function_">slideUp</span>([speed],[easing],[fn]])</span><br><span class="line"></span><br><span class="line"># <span class="number">3.</span>滑动切换效果语法规范</span><br><span class="line"><span class="title function_">slideToggle</span>([speed],[easing],[fn]])</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="5-3-事件切换"><a href="#5-3-事件切换" class="headerlink" title="5.3 事件切换"></a><strong>5.3 事件切换</strong></h3><p><code>hover([over],out)</code></p><blockquote><ol><li>over:鼠标移到元素上要触发的函数(相当于mouseenter)</li><li>out:鼠标移出元素要触发的函数(相当于mouseleave)</li><li>如果只写一个函数,则鼠标经过和离开都会触发它</li></ol></blockquote><h3 id="5-4-动画队列及其停止排队方法"><a href="#5-4-动画队列及其停止排队方法" class="headerlink" title="5.4 动画队列及其停止排队方法"></a>5.4 <strong>动画队列及其停止排队方法</strong></h3><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"># 停止排队</span><br><span class="line"><span class="title function_">stop</span>()</span><br></pre></td></tr></table></figure><blockquote><ol><li>stop() 方法用于停止动画或效果。</li><li><font color="RedOrange">注意: stop() 写到动画或者效果的前面, 相当于停止结束上一次的动画。</font></li></ol></blockquote><p>###5.5<strong>淡入淡出效果</strong></p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"># <span class="number">1.</span>淡入效果语法规范</span><br><span class="line"><span class="title function_">fadeIn</span>([speed],[easing],[fn]])</span><br><span class="line"></span><br><span class="line"># <span class="number">2.</span>淡出效果语法规范</span><br><span class="line"><span class="title function_">fadeOut</span>([speed],[easing],[fn]])</span><br><span class="line"></span><br><span class="line"># <span class="number">3.</span>淡入淡出切换效果语法规范</span><br><span class="line"><span class="title function_">fadeToggle</span>([speed],[easing],[fn]])</span><br><span class="line"></span><br><span class="line"># <span class="number">4.</span>渐进方式调整到指定的不透明度</span><br><span class="line"><span class="title function_">fadeTo</span>([[speed],opacity,[easing],[fn]])</span><br></pre></td></tr></table></figure><p>###5.6 <strong>自定义动画</strong> <strong>animate</strong></p><p><strong>1. 语法</strong></p><p><code>animate(params,[speed],[easing],[fn])</code></p><p><strong>2. 参数</strong></p><blockquote><ol><li>params: 想要更改的样式属性,以对象形式传递,必须写。 属性名可以不用带引号, 如果是复合属性则需要采取驼峰命名法 borderLeft。其余参数都可以省略。</li><li>speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。</li><li>easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。</li><li>fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。</li></ol></blockquote><h2 id="6-jQuery-属性操作"><a href="#6-jQuery-属性操作" class="headerlink" title="6.jQuery 属性操作"></a>6.<strong>jQuery</strong> <strong>属性操作</strong></h2><h3 id="6-1-设置或获取元素固有属性值-prop"><a href="#6-1-设置或获取元素固有属性值-prop" class="headerlink" title="6.1 设置或获取元素固有属性值 prop()"></a>6.1 <strong>设置或获取元素固有属性值</strong> <strong>prop()</strong></h3><p><strong>所谓元素固有属性就是元素本身自带的属性,比如 <a> 元素里面的 href ,比如 <input> 元素里面的 type。</a></strong></p><p><strong>1.</strong> <strong>获取属性语法</strong></p><blockquote><p><code>prop(''属性'')</code></p></blockquote><p><strong>2.</strong> <strong>设置属性语法</strong></p><blockquote><p><code>prop(''属性'', ''属性值'')</code></p></blockquote><h3 id="6-2-设置或获取元素自定义属性值-attr"><a href="#6-2-设置或获取元素自定义属性值-attr" class="headerlink" title="6.2 设置或获取元素自定义属性值 attr()"></a>6.2 <strong>设置或获取元素自定义属性值</strong> <strong>attr()</strong></h3><p><strong>用户自己给元素添加的属性,我们称为自定义属性。 比如给 div 添加 index =“1”。</strong> </p><p><strong>1.</strong> <strong>获取属性语法</strong></p><blockquote><p><code>attr(''属性'') // 类似原生 getAttribute()</code></p></blockquote><p><strong>2.</strong> <strong>设置属性语法</strong></p><blockquote><p><code>attr(''属性'', ''属性值'') // 类似原生 setAttribute()</code></p></blockquote><p><strong>改方法也可以获取 H5 自定义属性</strong></p><h3 id="6-3-数据缓存-data"><a href="#6-3-数据缓存-data" class="headerlink" title="6.3 数据缓存 data()"></a>6.3 <strong>数据缓存</strong> <strong>data()</strong></h3><p><strong>data() 方法可以在指定的元素上存取数据,并不会修改 DOM 元素结构。一旦页面刷新,之前存放的数据都将被移除。</strong> </p><p><strong>1.</strong> <strong>附加数据语法</strong></p><blockquote><p><code>data(''name'',''value'') // 向被选元素附加数据 </code></p></blockquote><p><strong>2. 获取数据语法</strong></p><blockquote><p><code>date(''name'') // 向被选元素获取数据 </code></p></blockquote><p><strong>同时,还可以读取 HTML5 自定义属性 data-index ,得到的是数字型</strong></p><h3 id="6-4-jQuery-内容文本值"><a href="#6-4-jQuery-内容文本值" class="headerlink" title="6.4 jQuery 内容文本值"></a>6.4 <strong>jQuery</strong> <strong>内容文本值</strong></h3><p><strong>主要针对元素的内容还有表单的值操作。</strong></p><h4 id="1-普通元素内容-html-(-相当于原生inner-HTML"><a href="#1-普通元素内容-html-(-相当于原生inner-HTML" class="headerlink" title="1. 普通元素内容 html()( 相当于原生inner HTML)"></a><strong>1.</strong> <strong>普通元素内容</strong> <strong>html()( 相当于原生inner HTML)</strong></h4><blockquote><p><code>html() // 获取元素的内容</code></p></blockquote><blockquote><p><code>html(''内容'') // 设置元素的内容</code></p></blockquote><h4 id="2-普通元素文本内容-text-相当与原生-innerText"><a href="#2-普通元素文本内容-text-相当与原生-innerText" class="headerlink" title="2. 普通元素文本内容 text() (相当与原生 innerText)"></a><strong>2.</strong> <strong>普通元素文本内容</strong> <strong>text() (相当与原生</strong> innerText)</h4><blockquote><p><code>text() // 获取元素的文本内容</code></p></blockquote><blockquote><p><code>text(''文本内容'') // 设置元素的文本内容</code></p></blockquote><h4 id="3-表单的值-val-(-相当于原生value"><a href="#3-表单的值-val-(-相当于原生value" class="headerlink" title="3. 表单的值 val()( 相当于原生value)"></a><strong>3. 表单的值 val()( 相当于原生value)</strong></h4><blockquote><p><code>val() // 获取表单的值</code></p></blockquote><blockquote><p><code>val(''内容'') // 设置表单的值</code></p></blockquote><h2 id="7-jQuery-元素操作"><a href="#7-jQuery-元素操作" class="headerlink" title="7. jQuery 元素操作"></a>7. <strong>jQuery</strong> <strong>元素操作</strong></h2><h3 id="7-1-遍历元素"><a href="#7-1-遍历元素" class="headerlink" title="7.1 遍历元素"></a>7.1 <strong>遍历元素</strong></h3><blockquote><p><strong>jQuery 隐式迭代是对同一类元素做了同样的操作。 如果想要给同一类元素做不同操作,就需要用到遍历。</strong></p></blockquote><p><strong>语法1:</strong></p><blockquote><p><code>$("div").each(function (index, domEle) { xxx; }) </code> </p></blockquote><blockquote><ol><li><p><strong>each() 方法遍历匹配的每一个元素。主要用DOM处理。 each 每一个</strong></p></li><li><p><strong>里面的回调函数有2个参数: index 是每个元素的索引号; demEle 是每个DOM元素对象,不是jquery对象</strong></p></li><li><p><strong>所以要想使用jquery方法,需要给这个dom元素转换为jquery对象 $(domEle)</strong></p></li></ol></blockquote><p><strong>语法2:</strong></p><blockquote><p><code>$.each(object,function (index, element) { xxx; }) </code></p></blockquote><blockquote><ol><li><p><strong>$.each()方法可用于遍历任何对象。主要用于数据处理,比如数组,对象</strong></p></li><li><p><strong>里面的函数有2个参数: index 是每个元素的索引号; element 遍历内容</strong></p></li></ol></blockquote><h3 id="7-2-创建元素"><a href="#7-2-创建元素" class="headerlink" title="7.2 创建元素"></a><strong>7.2</strong> 创建元素</h3><p><strong>语法:</strong></p><blockquote><p><code>$(''<li></li>'');</code> //动态的创建了一个 <li> </li></p></blockquote><h3 id="7-3-添加元素"><a href="#7-3-添加元素" class="headerlink" title="7.3 添加元素"></a><strong>7.3</strong> 添加元素</h3><p><strong>1.</strong> <strong>内部添加</strong></p><blockquote><p><code>element.append(''内容'') </code></p></blockquote><p><strong>把内容放入匹配元素内部最后面,类似原生 appendChild</strong></p><blockquote><p>element.prepend(‘’内容’’) </p></blockquote><p><strong>把内容放入匹配元素内部最前面</strong>。</p><p><strong>2</strong>. <strong>外部添加</strong></p><blockquote><p><code>element.after(''内容'')</code> // 把内容放入目标元素后面</p></blockquote><blockquote><p><code>element.before(''内容'')</code> // 把内容放入目标元素前面 </p></blockquote><blockquote><ol><li><font color="RedOrange">内部添加元素,生成之后,它们是父子关系。</font></li><li><font color="RedOrange">外部添加元素,生成之后,他们是兄弟关系</font></li></ol></blockquote><h3 id="7-4-删除元素"><a href="#7-4-删除元素" class="headerlink" title="7.4 删除元素"></a><strong>7.4</strong> <strong>删除</strong>元素</h3><blockquote><p><code>element.remove() </code> // 删除匹配的元素(本身)</p></blockquote><blockquote><p><code>element.empty()</code> // 删除匹配的元素集合中所有的子节点</p></blockquote><blockquote><p><code>element.html(''''</code>) // 清空匹配的元素内容</p></blockquote><blockquote><ol><li><font color="RedOrange"><strong>remove 删除元素本身。</strong></font></li><li><font color="RedOrange"><strong>empt() 和 html(‘’’’) 作用等价,都可以删除元素里面的内容,只不过 html 还可以设置内容</strong></font></li></ol></blockquote><h3 id="7-5-jQuery-尺寸"><a href="#7-5-jQuery-尺寸" class="headerlink" title="7.5 jQuery 尺寸"></a>7.5 <strong>jQuery 尺寸</strong></h3><p><img src="/2022/11/18/jQuery/image-20221108233807711.png" alt="image-20221108233807711"></p><blockquote><ul><li><strong>以上参数为空,则是获取相应值,返回的是数字型。</strong></li><li><strong>如果参数为数字,则是修改相应值。</strong></li><li><strong>参数可以不必写单位</strong></li></ul></blockquote><h3 id="7-6-jQuery-位置"><a href="#7-6-jQuery-位置" class="headerlink" title="7.6 jQuery 位置"></a>7.6 <strong>jQuery 位置</strong></h3><p><strong>位置主要有三个: offset()、position()、scrollTop()/scrollLeft()</strong></p><h4 id="1-offset-设置或获取元素偏移"><a href="#1-offset-设置或获取元素偏移" class="headerlink" title="1. offset() 设置或获取元素偏移"></a><strong>1. offset</strong>() <strong>设置或获取元素偏移</strong></h4><blockquote><p>①offset() 方法设置或返回被选元素相对于<strong>文档</strong>的偏移坐标,跟父级没有关系。</p><p>②该方法有2个属性 left、top 。offset().top 用于获取距离文档顶部的距离,offset().left 用于获取距离文档左侧的距离。</p><p>③可以设置元素的偏移:offset({ top: 10, left: 30 });</p></blockquote><h4 id="2-position-获取元素偏移"><a href="#2-position-获取元素偏移" class="headerlink" title="2. position() 获取元素偏移"></a>2. <strong>position()</strong> <strong>获取元素偏移</strong></h4><blockquote><p>①position() 方法用于返回被选元素相对于<strong>带有定位的父级</strong>偏移坐标,如果父级都没有定位,则以文档为准。</p><p>②该方法有2个属性 left、top。position().top 用于获取距离定位父级顶部的距离,position().left 用于获取距离定位父级左侧的距离。</p><p>③该方法只能获取。</p></blockquote><h4 id="3-scrollTop-scrollLeft-设置或获取元素被卷去的头部和左侧"><a href="#3-scrollTop-scrollLeft-设置或获取元素被卷去的头部和左侧" class="headerlink" title="3. scrollTop)/scrollLeft()设置或获取元素被卷去的头部和左侧"></a>3. scrollTop)/scrollLeft()设置或获取元素被卷去的头部和左侧</h4><blockquote><p>①scrollTop() 方法设置或返回被选元素被卷去的头部。</p><p>②不跟参数是获取,参数为不带单位的数字则是设置被卷去的头部。</p></blockquote><h2 id="8-jQuery-事件"><a href="#8-jQuery-事件" class="headerlink" title="8. jQuery 事件"></a>8. jQuery 事件</h2><h3 id="8-1-jQuery-事件注册"><a href="#8-1-jQuery-事件注册" class="headerlink" title="8.1 jQuery 事件注册"></a>8.1 <strong>jQuery</strong> <strong>事件注册</strong></h3><blockquote><p><strong>单个事件注册</strong></p></blockquote><p><strong>语法:</strong></p><blockquote><p>element.事件(function(){}) </p></blockquote><blockquote><p>$(“div”).click(function(){ 事件处理程序 }) </p></blockquote><p><strong>其他事件和原生基本一致。</strong></p><p><strong>比如mouseover、mouseout、blur、focus、change、keydown、keyup、resize、scroll 等</strong></p><h3 id="8-2-事件处理-on-绑定事件"><a href="#8-2-事件处理-on-绑定事件" class="headerlink" title="8.2 事件处理 on() 绑定事件"></a>8.2 <strong>事件处理</strong> <strong>on()</strong> <strong>绑定事件</strong></h3><p><font color="RedOrange"><strong>on() 方法在匹配元素上绑定一个或多个事件的事件处理函数</strong></font></p><p><strong>语法:</strong></p><blockquote><p>element.on(events,[selector],fn) </p></blockquote><blockquote><ol><li><p>events:一个或多个用空格分隔的事件类型,如”click”或”keydown” 。</p></li><li><p>selector: 元素的子元素选择器 。</p></li><li><p>fn:回调函数 即绑定在元素身上的侦听函数。 </p></li></ol></blockquote><h4 id="on-方法优势1:"><a href="#on-方法优势1:" class="headerlink" title="on() 方法优势1:"></a><strong>on()</strong> <strong>方法优势</strong>1:</h4><p><strong>可以绑定多个事件,多个处理事件处理程序</strong></p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"> $(“div”).<span class="title function_">on</span>({</span><br><span class="line"> <span class="attr">mouseover</span>: <span class="keyword">function</span>(<span class="params"></span>){}, </span><br><span class="line"> <span class="attr">mouseout</span>: <span class="keyword">function</span>(<span class="params"></span>){},</span><br><span class="line"> <span class="attr">click</span>: <span class="keyword">function</span>(<span class="params"></span>){}</span><br><span class="line">}); </span><br></pre></td></tr></table></figure><p><strong>如果事件处理程序相同</strong> </p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">$(“div”).<span class="title function_">on</span>(“mouseover mouseout”, <span class="keyword">function</span>(<span class="params"></span>) {</span><br><span class="line"> $(<span class="variable language_">this</span>).<span class="title function_">toggleClass</span>(“current”);</span><br><span class="line"> }); </span><br></pre></td></tr></table></figure><h4 id="on-方法优势2:"><a href="#on-方法优势2:" class="headerlink" title="on() 方法优势2:"></a><strong>on()</strong> <strong>方法</strong>优势2:</h4><p><strong>可以事件委派操作 。事件委派的定义就是,把原来加给子元素身上的事件绑定在父元素身上,就是把事件委派给父元素。</strong></p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">$(<span class="string">'ul'</span>).<span class="title function_">on</span>(<span class="string">'click'</span>, <span class="string">'li'</span>, <span class="keyword">function</span>(<span class="params"></span>) {</span><br><span class="line"> <span class="title function_">alert</span>(<span class="string">'hello world!'</span>);</span><br><span class="line">}); </span><br></pre></td></tr></table></figure><p><strong>在此之前有bind(), live() delegate()等方法来处理事件绑定或者事件委派,最新版本的请用on替代他们。</strong></p><h4 id="on-方法优势3:"><a href="#on-方法优势3:" class="headerlink" title="on() 方法优势3:"></a><strong>on()</strong> <strong>方法</strong>优势3:</h4><p><strong>动态创建的元素,click() 没有办法绑定事件, on() 可以给动态生成的元素绑定事件</strong> </p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">$(“div<span class="string">").on("</span>click<span class="string">",”p”, function(){</span></span><br><span class="line"><span class="string"> alert("</span>俺可以给动态生成的元素绑定事件<span class="string">")</span></span><br><span class="line"><span class="string">}); </span></span><br></pre></td></tr></table></figure><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$(<span class="string">"div"</span>).<span class="title function_">append</span>($(<span class="string">"<p>我是动态创建的p</p>"</span>));</span><br></pre></td></tr></table></figure><h3 id="8-3-事件处理-off-解绑事件"><a href="#8-3-事件处理-off-解绑事件" class="headerlink" title="8.3 事件处理 off() 解绑事件"></a><strong>8.3 事件处理</strong> <strong>off()</strong> <strong>解绑事件</strong></h3><p><strong>off() 方法可以移除通过 on() 方法添加的事件处理程序。</strong></p><blockquote><p><strong>$(“p”).off() // 解绑p元素所有事件处理程序</strong></p><p><strong>$(“p”).off( “click”) // 解绑p元素上面的点击事件 后面的 foo 是侦听函数名</strong></p><p><strong>$(“ul”).off(“click”, “li”); // 解绑事件委托</strong></p></blockquote><p><strong>如果有的事件只想触发一次, 可以使用 one() 来绑定事件。</strong></p><h3 id="8-4-自动触发事件-trigger"><a href="#8-4-自动触发事件-trigger" class="headerlink" title="8.4 自动触发事件 trigger()"></a><strong>8.4 自动触发事件 trigger()</strong></h3><p><strong>有些事件希望自动触发, 比如轮播图自动播放功能跟点击右侧按钮一致。可以利用定时器自动触发右侧按钮点击事件,不必鼠标点击触发</strong>。</p><blockquote><p><strong>element.triggerHandler(type) // 第三种自动触发模式</strong></p></blockquote><p><strong>triggerHandler模式不会触发元素的默认行为,这是和前面两种的区别。</strong></p><h3 id="8-5-jQuery-事件对象"><a href="#8-5-jQuery-事件对象" class="headerlink" title="8.5 jQuery 事件对象"></a>8.5 <strong>jQuery</strong> 事件对象</h3><p><strong>事件被触发,就会有事件对象的产生。</strong></p><blockquote><p><strong>element.on(events,[selector],function(event) {}</strong>)</p></blockquote><blockquote><p><strong>阻止默认行为:event.preventDefault() 或者 return false</strong> </p><p><strong>阻止冒泡: event.stopPropagation()</strong> </p></blockquote><h2 id="9-jQuery-其他方法"><a href="#9-jQuery-其他方法" class="headerlink" title="9. jQuery 其他方法"></a>9. <strong>jQuery</strong> <strong>其他方法</strong></h2><h3 id="8-1-jQuery-对象拷贝"><a href="#8-1-jQuery-对象拷贝" class="headerlink" title="8.1 jQuery 对象拷贝"></a>8.1 <strong>jQuery</strong> <strong>对象拷贝</strong></h3><p><strong>如果想要把某个对象拷贝(合并) 给另外一个对象使用,此时可以使用 $.extend() 方法</strong></p><p><strong>语法:</strong></p><blockquote><p><strong>$.extend([deep], target, object1, [objectN])</strong> </p></blockquote><blockquote><ol><li><p><strong>deep: 如果设为true 为深拷贝, 默认为false 浅拷贝</strong> </p></li><li><p><strong>target: 要拷贝的目标对象</strong></p></li><li><p><strong>object1:待拷贝到第一个对象的对象。</strong></p></li><li><p><strong>objectN:待拷贝到第N个对象的对象。</strong></p></li><li><p><strong>浅拷贝是把被拷贝的对象复杂数据类型中的地址拷贝给目标对象,修改目标对象会影响被拷贝对象。</strong></p></li><li><p><strong>深拷贝,前面加true, 完全克隆(拷贝的对象,而不是地址),修改目标对象不会影响被拷贝对象。</strong></p></li></ol></blockquote><h4 id="9-2-jQuery-多库共存"><a href="#9-2-jQuery-多库共存" class="headerlink" title="9.2 jQuery 多库共存"></a>9.2 <strong>jQuery</strong> <strong>多库共存</strong></h4><p><strong>问题概述:</strong></p><blockquote><p>jQuery使用$作为标示符,随着jQuery的流行,其他 js 库也会用这$作为标识符, 这样一起使用会引起冲突。</p></blockquote><p><strong>客观需求:</strong></p><blockquote><p>需要一个解决方案,让jQuery 和其他的js库不存在冲突,可以同时存在,这就叫做多库共存。</p></blockquote><p><strong>jQuery</strong> <strong>解决方案:</strong></p><blockquote><p><font color="RedOrange">1. 把里面的 $ 符号 统一改为 jQuery。 比如 jQuery(‘’div’’)</font></p><p><font color="RedOrange">2. jQuery 变量规定新的名称:$.noConflict() var xx = $.noConflict();</font></p></blockquote><h3 id="9-3-jQuery-插件"><a href="#9-3-jQuery-插件" class="headerlink" title="9.3 jQuery 插件"></a>9.3 <strong>jQuery</strong> <strong>插件</strong></h3><p><strong>jQuery 功能比较有限,想要更复杂的特效效果,可以借助于 jQuery 插件完成。</strong></p><p><strong>注意: 这些插件也是依赖于jQuery来完成的,所以必须要先引入jQuery文件,因此也称为 jQuery 插件。</strong></p><p><strong>jQuery</strong> <strong>插件常用的网站:</strong></p><blockquote><ol><li><p><strong>jQuery 插件库 <a href="http://www.jq22.com/">http://www.jq22.com/</a></strong> </p></li><li><p><strong>jQuery 之家 <a href="http://www.htmleaf.com/">http://www.htmleaf.com/</a></strong> </p></li></ol></blockquote><p><strong>jQuery</strong> <strong>插件使用步骤:</strong></p><blockquote><ol><li><p><strong>引入相关文件。(jQuery 文件 和 插件文件)</strong> </p></li><li><p><strong>复制相关html、css、js (调用插件)。</strong></p></li></ol></blockquote><p><strong>jQuery</strong> <strong>插件演示:</strong></p><blockquote><ol><li><p>瀑布流</p></li><li><p>图片懒加载(图片使用延迟加载在可提高网页下载速度。它也能帮助减轻服务器负载)</p></li></ol><p> 当我们页面滑动到可视区域,再显示图片。</p><p> 我们使用jquery 插件库 EasyLazyload。 注意,此时的js引入文件和js调用必须写到 DOM元素(图片)最后面</p><ol start="3"><li><p>全屏滚动(fullpage.js)</p><p><strong>gitHub: <a href="https://github.com/alvarotrigo/fullPage.js">https://github.com/alvarotrigo/fullPage.js</a></strong></p><p><strong>中文翻译网站: <a href="http://www.dowebok.com/demo/2014/77/">http://www.dowebok.com/demo/2014/77/</a></strong></p></li></ol></blockquote><p><strong>bootstrap JS</strong> <strong>插件</strong></p><blockquote><p><strong>bootstrap 框架也是依赖于 jQuery 开发的,因此里面的 js插件使用 ,也必须引入jQuery 文件</strong></p></blockquote><h2 id="综合案例-todolist"><a href="#综合案例-todolist" class="headerlink" title="综合案例 todolist"></a>综合案例 todolist</h2><h3 id="1-toDoList"><a href="#1-toDoList" class="headerlink" title="1. toDoList"></a>1. <strong>toDoList</strong></h3><blockquote><p>①文本框里面输入内容,按下回车,就可以生成待办事项。</p><p>②点击待办事项复选框,就可以把当前数据添加到已完成事项里面。</p><p>③点击已完成事项复选框,就可以把当前数据添加到待办事项里面。</p><p><strong>4. 但是本页面内容刷新页面不会丢失</strong></p></blockquote><h3 id="2-toDoList-分析"><a href="#2-toDoList-分析" class="headerlink" title="2. toDoList 分析"></a>2. <strong>toDoList</strong> <strong>分析</strong></h3><blockquote><p>①刷新页面不会丢失数据,因此需要用到本地存储 localStorage</p><p>②<strong>核心思路: 不管按下回车,还是点击复选框,都是把本地存储的数据加载到页面中,这样保证刷新关闭页面不会丢失数据</strong></p><p>③存储的数据格式:var todolist = [{ title : ‘xxx’, done: false}]</p><p>④注意点1: 本地存储 localStorage 里面只能存储字符串格式 ,因此需要把对象转换为字符串 JSON.stringify(data)。</p><p>⑤注意点2: 获取本地存储数据,需要把里面的字符串转换为对象格式JSON.parse() 我们才能使用里面的数据。</p></blockquote><h3 id="3-toDoList-按下回车把新数据添加到本地存储里面"><a href="#3-toDoList-按下回车把新数据添加到本地存储里面" class="headerlink" title="3. toDoList 按下回车把新数据添加到本地存储里面"></a>3. <strong>toDoList</strong> <strong>按下回车把新数据添加到本地存储里面</strong></h3><blockquote><p>①切记: 页面中的数据,都要从本地存储里面获取,这样刷新页面不会丢失数据,所以先要把数据保存到本地存储里面。</p><p>②利用事件对象.keyCode判断用户按下回车键(13)。</p><p>③声明一个数组,保存数据。</p><p>④先要读取本地存储原来的数据(声明函数 getData()),放到这个数组里面。</p><p>⑤之后把最新从表单获取过来的数据,追加到数组里面。</p><p>⑥最后把数组存储给本地存储 (声明函数 savaDate())</p></blockquote><h3 id="4-toDoList-本地存储数据渲染加载到页面"><a href="#4-toDoList-本地存储数据渲染加载到页面" class="headerlink" title="4. toDoList 本地存储数据渲染加载到页面"></a>4. <strong>toDoList</strong> <strong>本地存储数据渲染加载到页面</strong></h3><blockquote><ol><li>因为后面也会经常渲染加载操作,所以声明一个函数 load,方便后面调用</li><li>先要读取本地存储数据。(数据不要忘记转换为对象格式)</li><li>之后遍历这个数据($.each()),有几条数据,就生成几个小li 添加到 ol 里面。</li><li>每次渲染之前,先把原先里面 ol 的内容清空,然后渲染加载最新的数据</li></ol></blockquote><h3 id="5-toDoList-删除操作"><a href="#5-toDoList-删除操作" class="headerlink" title="5. toDoList 删除操作"></a>5. <strong>toDoList</strong> <strong>删除操作</strong></h3><blockquote><p>①点击里面的a链接,不是删除的li,而是删除本地存储对应的数据。</p><p>②核心原理:先获取本地存储数据,删除对应的数据,保存给本地存储,重新渲染列表li</p><p>③我们可以给链接自定义属性记录当前的索引号</p><p>④根据这个索引号删除相关的数据—-数组的splice(i, 1)方法</p><p>⑤存储修改后的数据,然后存储给本地存储</p><p>⑥重新渲染加载数据列表</p><p>⑦因为a是动态创建的,我们使用on方法绑定事件</p></blockquote><h3 id="6-toDoList-正在进行和已完成选项操作"><a href="#6-toDoList-正在进行和已完成选项操作" class="headerlink" title="6. toDoList 正在进行和已完成选项操作"></a>6. <strong>toDoList</strong> <strong>正在进行和已完成选项操作</strong></h3><blockquote><p>①当我们点击了小的复选框,修改本地存储数据,再重新渲染数据列表。</p><p>②点击之后,获取本地存储数据。</p><p>③修改对应数据属性 done 为当前复选框的checked状态。</p><p>④之后保存数据到本地存储</p><p>⑤重新渲染加载数据列表</p><p>⑥load 加载函数里面,新增一个条件,如果当前数据的done为true 就是已经完成的,就把列表渲染加载到 ul 里面</p><p>⑦如果当前数据的done 为false, 则是待办事项,就把列表渲染加载到 ol 里面</p></blockquote><h3 id="7-toDoList-统计正在进行个数和已经完成个数"><a href="#7-toDoList-统计正在进行个数和已经完成个数" class="headerlink" title="7. toDoList 统计正在进行个数和已经完成个数"></a>7. <strong>toDoList</strong> <strong>统计正在进行个数和已经完成个数</strong></h3><blockquote><p>①在我们load 函数里面操作</p><p>②声明2个变量 :todoCount 待办个数 doneCount 已完成个数 </p><p>③当进行遍历本地存储数据的时候, 如果 数据done为 false, 则 todoCount++, 否则 doneCount++</p><p>④最后修改相应的元素 text()</p></blockquote>]]></content>
<categories>
<category> 编程 </category>
</categories>
<tags>
<tag> 编程 </tag>
</tags>
</entry>
<entry>
<title>Git命令</title>
<link href="/2022/11/17/Git%E5%91%BD%E4%BB%A4/"/>
<url>/2022/11/17/Git%E5%91%BD%E4%BB%A4/</url>
<content type="html"><![CDATA[<h1 id="安装并配置Git"><a href="#安装并配置Git" class="headerlink" title="安装并配置Git"></a>安装并配置Git</h1><hr><h2 id="Git基础命令"><a href="#Git基础命令" class="headerlink" title="Git基础命令"></a>Git基础命令</h2><p>###<strong>1.配置用户信息</strong></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">git config --global user.name <span class="string">"用户名"</span></span><br><span class="line">git config --global user.email <span class="string">"用户邮箱"</span></span><br></pre></td></tr></table></figure><p>####$\textcolor{red}{注意:如果使用了 –global 选项,那么该命令只需要运行一次,即可永久生效。}$ </p><p><font color="RedOrange"> 注意:如果使用了 –global 选项,那么该命令只需要运行一次,即可永久生效。 </font></p><p>###<strong>2. 检查配置信息</strong> </p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 查看所有的全局配置</span></span><br><span class="line">git config --list --global</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看所有配置</span></span><br><span class="line">git config -l</span><br></pre></td></tr></table></figure><p>###<strong>3.基础操作</strong> </p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 在现有目录中初始化仓库</span></span><br><span class="line">git init</span><br><span class="line"></span><br><span class="line"><span class="comment"># 检查文件的状态</span></span><br><span class="line">git status</span><br><span class="line"></span><br><span class="line"><span class="comment"># 以精简的方式显示文件状态</span></span><br><span class="line">git status -s</span><br><span class="line"></span><br><span class="line"><span class="comment"># 跟踪新文件</span></span><br><span class="line">git add</span><br><span class="line"></span><br><span class="line"><span class="comment"># 提交更新</span></span><br><span class="line">git commit -m <span class="string">"提交信息"</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 撤销对文件的修改</span></span><br><span class="line">git checkout -- index.html</span><br><span class="line"><span class="comment">#撤销操作的本质:用 Git 仓库中保存的文件,覆盖工作区中指定的文件</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 向暂存区中一次性添加多个文件</span></span><br><span class="line">git add .</span><br><span class="line"></span><br><span class="line"><span class="comment"># 取消暂存的文件</span></span><br><span class="line">git reset HEAD 要移除的文件名称</span><br><span class="line"></span><br><span class="line"><span class="comment"># 跳过使用暂存区域</span></span><br><span class="line">git commit -a -m <span class="string">"信息描述"</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 移除文件</span></span><br><span class="line"><span class="comment"># ①从 Git 仓库和工作区中同时移除对应的文件</span></span><br><span class="line">git <span class="built_in">rm</span> -f index.js</span><br><span class="line"><span class="comment"># ② 只从 Git 仓库中移除指定的文件,但保留工作区中对应的文件</span></span><br><span class="line">git <span class="built_in">rm</span> --cached index.css</span><br><span class="line"></span><br><span class="line"><span class="comment"># 忽略文件</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 创建一个名为 .gitignore 的配置文件,列出要忽略的文件的匹配模式</span></span><br><span class="line"><span class="comment"># ① 以 # 开头的是注释</span></span><br><span class="line"><span class="comment"># ② 以 / 结尾的是目录</span></span><br><span class="line"><span class="comment"># ③ 以 / 开头防止递归</span></span><br><span class="line"><span class="comment"># ④ 以 ! 开头表示取反</span></span><br><span class="line"><span class="comment"># ⑤ 可以使用 glob 模式进行文件和文件夹的匹配</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># glob 模式是指简化了的正则表达式</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># ① 星号 * 匹配零个或多个任意字符</span></span><br><span class="line"><span class="comment"># ② [abc] 匹配任何一个列在方括号中的字符 (此案例匹配一个 a 或匹配一个 b 或匹配一个 c)</span></span><br><span class="line"><span class="comment"># ③ 问号 ? 只匹配一个任意字符 #④ 在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)</span></span><br><span class="line"><span class="comment"># ⑤ 两个星号 ** 表示匹配任意中间目录(比如 a/**/z 可以匹配 a/z 、 a/b/z a/b/c/z 等</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看提交历史</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 按时间先后顺序列出所有提交历史,最近的提交排在最上面</span></span><br><span class="line">git <span class="built_in">log</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 只展示最新的两条提交历史,数字可以按需要进行填写</span></span><br><span class="line">git <span class="built_in">log</span> -2</span><br><span class="line"></span><br><span class="line"><span class="comment"># 在一行上展示最近两条提交的历史信息</span></span><br><span class="line">git <span class="built_in">log</span> -2 --pretty=oneline</span><br><span class="line"></span><br><span class="line"><span class="comment"># 在一行上展示最近的两条历史信息,并自定义输出的格式</span></span><br><span class="line"><span class="comment"># %h 提交的间歇哈希值 %an 作者的名字 %ar 作者修订日期,按多久以前的方式显示 %s 提交说明</span></span><br><span class="line">git <span class="built_in">log</span> -2 --pretty=format:<span class="string">"%h | %an | %ar | %s"</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 回退到指定的版本</span></span><br><span class="line"><span class="comment"># 在一行上展示所有的提交历史</span></span><br><span class="line">git <span class="built_in">log</span> --pretty=online</span><br><span class="line"></span><br><span class="line"><span class="comment"># 使用 git reset --hard 命令,根据指定的提交ID回退到指定版本</span></span><br><span class="line">git reset --hard <CommitID></span><br><span class="line"></span><br><span class="line"><span class="comment"># 在旧版本中查看命令操作的历史</span></span><br><span class="line">git reflog -pretty=online</span><br><span class="line"></span><br><span class="line">再次根据最新的提交ID,跳转到最新版本</span><br><span class="line">git reset --hard <CommitID></span><br><span class="line"></span><br><span class="line"></span><br></pre></td></tr></table></figure><hr><p>##Github相关操作</p><h3 id="1-远程仓库的两种访问方式"><a href="#1-远程仓库的两种访问方式" class="headerlink" title="1.远程仓库的两种访问方式"></a><strong>1.远程仓库的两种访问方式</strong></h3><blockquote><p><strong>Github 上的远程仓库,有两种访问方式,分别是 HTTPS 和 SSH。它们的区别是:</strong></p><blockquote><p>① HTTPS:零配置;但是每次访问仓库时,需要重复输入 Github 的账号和密码才能访问成功 </p></blockquote><blockquote><p>② SSH:需要进行额外的配置;但是配置成功后,每次访问仓库时,不需重复输入 Github 的账号和密码</p></blockquote><blockquote><p><font color="RedOrange">推荐使用 SSH 的方式访问远程仓库</font></p></blockquote></blockquote><p>###2.检测 Github 的 SSH key 是否配置成功</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 打开 Git Bash,输入如下的命令并回车执行:</span></span><br><span class="line">ssh -T [email protected]</span><br></pre></td></tr></table></figure><h3 id="3-将远程仓库克隆到本地"><a href="#3-将远程仓库克隆到本地" class="headerlink" title="3.将远程仓库克隆到本地"></a>3.将远程仓库克隆到本地</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 打开 Git Bash,输入如下的命令并回车执行:</span></span><br><span class="line">git <span class="built_in">clone</span> 远程仓库的地址</span><br></pre></td></tr></table></figure><h2 id="Git-分支-本地分支操作"><a href="#Git-分支-本地分支操作" class="headerlink" title="Git 分支 - 本地分支操作"></a>Git 分支 - 本地分支操作</h2><h3 id="1-查看分支列表"><a href="#1-查看分支列表" class="headerlink" title="1.查看分支列表"></a>1.查看分支列表</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 使用如下的命令,可以查看当前 Git 仓库中所有的分支列表:</span></span><br><span class="line">git branch</span><br></pre></td></tr></table></figure><p>###2.创建新分支</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git branch 分支名称</span><br></pre></td></tr></table></figure><p>###3.切换分支</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 使用如下的命令,可以切换到指定的分支上进行开发:</span></span><br><span class="line">git checkout login</span><br></pre></td></tr></table></figure><h3>4.分支的快速创建和切换</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 使用如下的命令,可以创建指定名称的新分支,并立即切换到新分支上:</span></span><br><span class="line"><span class="comment"># -b 表示创建一个新分支</span></span><br><span class="line"><span class="comment"># checkout 表示切换到刚才新建的分支上</span></span><br><span class="line">git checkout -b 分支名称</span><br></pre></td></tr></table></figure><h3 id="5-合并分支"><a href="#5-合并分支" class="headerlink" title="5.合并分支"></a>5.合并分支</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 1.切换到 master 分支</span></span><br><span class="line">git checkout master</span><br><span class="line"><span class="comment"># 2.在 master 分支上运行 git merge 命令,将login分支的代码合并到 master 分支</span></span><br><span class="line">git merge login</span><br></pre></td></tr></table></figure><h3 id="6-删除分支"><a href="#6-删除分支" class="headerlink" title="6.删除分支"></a>6.删除分支</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 当把功能分支的代码合并到 master 主分支上以后,就可以使用如下的命令,删除对应的功能分支:</span></span><br><span class="line">git branch -d 分支名称</span><br></pre></td></tr></table></figure><h3 id="7-遇到冲突时的分支合并"><a href="#7-遇到冲突时的分支合并" class="headerlink" title="7.遇到冲突时的分支合并"></a>7.遇到冲突时的分支合并</h3><blockquote><p>如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法干净的合并它们。 此时,我们需要打开 这些包含冲突的文件然后手动解决冲突。</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 假设: 在把 reg 分支合并到 master 分支期间代码发生了冲突</span></span><br><span class="line">git checkout master</span><br><span class="line">git merge reg</span><br><span class="line"></span><br><span class="line"><span class="comment"># 打开包含冲突的文件,手动解决冲突之后,再执行如下命令</span></span><br><span class="line">git add .</span><br><span class="line">git commit -m <span class="string">"解决了分支合并冲突的问题"</span></span><br></pre></td></tr></table></figure><h2 id="Git-分支-远程分支操作"><a href="#Git-分支-远程分支操作" class="headerlink" title="Git 分支 - 远程分支操作"></a>Git 分支 - 远程分支操作</h2><p>###1. 将本地分支推送到远程仓库</p><blockquote><p>如果是第一次将本地分支推送到远程仓库,需要运行如下的命令:</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># -u 表示吧本地分支和远程分支进行关联,只有再第一次推送时需要带 -u 参数</span></span><br><span class="line">git push -u 远程仓库名 本地分支名称:远程分支名称</span><br><span class="line"></span><br><span class="line"><span class="comment"># 实际案例</span></span><br><span class="line">git push -u origin payment:pay</span><br><span class="line"></span><br><span class="line"><span class="comment"># 如果希望远程分支的名称和本地分支保持一致,可以对命令进行简化:</span></span><br><span class="line">git oush -u origin payment</span><br></pre></td></tr></table></figure><p>###2. 查看远程仓库中所有的分支列表</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git remote show 远程仓库名称</span><br></pre></td></tr></table></figure><p>###3. 跟踪分支</p><blockquote><p>跟踪分支指的是:从远程仓库中,把远程分支下载到本地仓库中</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 从远程仓库中,把对应的远程分支下载到本地仓库中,保持本地分支和远程分支名称相同</span></span><br><span class="line">git checkout </span><br></pre></td></tr></table></figure><p>###4. 拉取远程分支的最新的代码</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 从远程仓库,拉取当前分支最新的代码,保持当前分支的代码和远程分支代码一致</span></span><br><span class="line">git pull</span><br></pre></td></tr></table></figure><h3 id="5-删除远程分支"><a href="#5-删除远程分支" class="headerlink" title="5. 删除远程分支"></a>5. 删除远程分支</h3><blockquote><p>可以使用如下的命令,删除远程仓库中指定的分支:</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 删除远程仓库中指定名称的远程分支</span></span><br><span class="line">git push 远程仓库名 --delete 远程分支名称</span><br><span class="line"><span class="comment"># 示例:</span></span><br><span class="line">git push origin --delete pay</span><br></pre></td></tr></table></figure><h1 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h1><hr><blockquote><p><font color="RedOrange">① 能够掌握 Git 中基本命令的使用</font></p><ul><li><p>git init </p></li><li><p>git add . </p></li><li><p>git commit –m “提交消息” </p></li><li><p>git status 和 git status -s</p></li></ul></blockquote><blockquote><p><font color="RedOrange">② 能够使用 Github 创建和维护远程仓库 </font></p><ul><li><p>能够配置 Github 的 SSH 访问 </p></li><li><p>能够将本地仓库上传到 Github</p></li></ul></blockquote><blockquote><p><font color="RedOrange">③ 能够掌握 Git 分支的基本使用 </font></p><ul><li><p>git checkout -b 新分支名称 </p></li><li><p>git push -u origin 新分支名称 </p></li><li><p>git checkout 分支名称 </p></li><li><p>git branch</p></li></ul></blockquote>]]></content>
<categories>
<category> 编程 </category>
</categories>
<tags>
<tag> 编程 </tag>
</tags>
</entry>
<entry>
<title>第一篇文章</title>
<link href="/2022/11/17/%E7%AC%AC%E4%B8%80%E7%AF%87%E6%96%87%E7%AB%A0/"/>
<url>/2022/11/17/%E7%AC%AC%E4%B8%80%E7%AF%87%E6%96%87%E7%AB%A0/</url>
<content type="html"><![CDATA[<h2 id="Hello-World"><a href="#Hello-World" class="headerlink" title="Hello World!"></a>Hello World!</h2>]]></content>
<categories>
<category> 生活 </category>
</categories>
</entry>
<entry>
<title>关于</title>
<link href="/about/index.html"/>
<url>/about/index.html</url>
<content type="html"><![CDATA[]]></content>
</entry>
<entry>
<title>留言板</title>
<link href="/comments/index.html"/>
<url>/comments/index.html</url>
<content type="html"><![CDATA[]]></content>
</entry>
<entry>
<title></title>
<link href="/css/custom.css"/>
<url>/css/custom.css</url>
<content type="html"><![CDATA[/* 页脚与头图透明 */#footer { background: transparent !important;}#page-header { background: transparent !important;}/* 白天模式遮罩透明 */#footer::before { background: transparent !important;}#page-header::before { background: transparent !important;}/* 夜间模式遮罩透明 */[data-theme="dark"] #footer::before { background: transparent !important;}[data-theme="dark"] #page-header::before { background: transparent !important;}]]></content>
</entry>
<entry>
<title>分类</title>
<link href="/categories/index.html"/>
<url>/categories/index.html</url>
<content type="html"><![CDATA[]]></content>
</entry>
<entry>
<title>友链</title>
<link href="/link/index.html"/>
<url>/link/index.html</url>
<content type="html"><![CDATA[]]></content>
</entry>
<entry>
<title>电影</title>
<link href="/movies/index.html"/>
<url>/movies/index.html</url>
<content type="html"><![CDATA[]]></content>
</entry>
<entry>
<title>音乐</title>
<link href="/music/index.html"/>
<url>/music/index.html</url>
<content type="html"><![CDATA[<div class="aplayer no-destroy" data-id="7754535983" data-server="netease" data-type="playlist" data-fixed="true" data-mini="true" data-listfolded="false" data-order="random" data-preload="none" data-autoplay="false" muted></div>]]></content>
</entry>
<entry>
<title>标签</title>
<link href="/tags/index.html"/>
<url>/tags/index.html</url>
<content type="html"><![CDATA[]]></content>
</entry>
<entry>
<title>我的相册</title>
<link href="/gallery/index.html"/>
<url>/gallery/index.html</url>
<content type="html"><![CDATA[<div class="fj-gallery"><p><img src="https://z1.ax1x.com/2023/04/23/p9epF3t.jpg"><br><img src="https://z1.ax1x.com/2023/04/23/p9epi9I.jpg"><br><img src="https://z1.ax1x.com/2023/04/23/p9epF3t.jpg"><br><img src="https://z1.ax1x.com/2023/04/23/p9epi9I.jpg"></p> </div>]]></content>
</entry>
</search>