上次初步介紹了什么是控制台,以及簡單的 console.log 輸出信息。
最后還有兩個小問題,我們就當回顧,來看下怎么操作吧。
先打開百度,然后按 F12 打開后,如果不是 Console 項的就點擊 Console 這項,因為我們要在控制台操作。。
看到如下內容:
好了我們先清空內容,可以右擊選 Clear console 菜單,或者輸入 clear() 都行。
接着,我們輸入 document.getElementById('kw1'); 然后回車,就可以看到 id 為 kw1 的元素信息了。
是不是很簡單。下一步是用 console.dir 查看該元素信息。
輸入 console.dir(document.getElementById('kw1')); 然后回車,出來一個奇奇怪怪的東西。
你可以點這個東西,然后他會展開,列出所有屬性方法。簡單說就是這個元素的 dom 屬性方法。
好了,這個我就不詳細說了,反正 dir 方法也是調試利器之一。
這些問題其實是今天內容的一個伏筆,剛才我們看到如何在控制台查看一個元素以及他的屬性方法。
其實控制台為我們提供了很多命令行api,簡單點說就是只有控制台能用的函數。
目前控制台方法和屬性有:(chrome 34)
["$$", "$x", "dir", "dirxml", "keys", "values", "profile", "profileEnd", "monitorEvents", "unmonitorEvents", "inspect", "copy", "clear", "getEventListeners", "undebug", "monitor", "unmonitor", "table", "$0", "$1", "$2", "$3", "$4", "$_"]
ps: 至於怎么查看這些東西,以后會講,暫時怕各位理解不了。
你也可以參閱 《console對象#3.命令行API》 來看下他的一些用法。
我們常用的其實就是 $, $_, $0-$4, dir, keys, values 這些,其他的有興趣或者想深入學習的,自己去翻閱資料吧。
$ // 簡單理解就是 document.querySelector 而已。 $$ // 簡單理解就是 document.querySelectorAll 而已。 $_ // 是上一個表達式的值,console對象#3.命令行API 里有說明。 $0-$4 // 是最近5個Elements面板選中的DOM元素,待會會講。 dir // 其實就是 console.dir keys // 取對象的鍵名, 返回鍵名組成的數組 values // 去對象的值, 返回值組成的數組
好了,從解釋上來說確實不難理解,但是沒操作過,誰也不知道會發生什么。
該死的百度,竟然加載了 jQuery 1.10.2,本來說百度環境干凈,比較合適講這個,結果尼瑪坑啊。。
我們換soso來講解好了。。打開 http://www.soso.com/ 然后打開控制台。
現在我們通過 $ 來查看 id 為 query 的元素(和百度的 kw1 元素一樣都是搜索框),然后查看該元素的屬性方法。
和剛才一樣的功能,但是現在的代碼已經非常精簡了,用到了 $, dir, $_ 這個三個控制台屬性和方法,是不是瞬間讓調試變的簡單了?
可能有人會說,現在一般用的都是jQuery,要查看這個怎么辦?
回到百度,我們來做剛才的那個操作。
和剛才的有一點點不一樣,因為 $('#kw1') 這一步得到的是 jQuery 對象,所以我們dir出來的也是jQuery屬性方法。
如果要看真實元素的屬性方法,加一個[0]即可
當然如果你就是要看 jQuery對象,那就完全沒問題了。。調試嘛,當然要一邊調,一邊試啦。。
其實還有一個非常簡單的方法,就是點擊左上角那個放大鏡圖標,然后選擇那個輸入框。
這樣我們可以直接用 $0 進行查看,剛才已經介紹了 $0-$4 了,就是這個功能,簡單吧。
我們來簡單說下 keys 和 values 吧,這個之后也會用到。。但是有些人還是喜歡直接dir查看。
var obj = {name: '尼瑪', age:22, desc: '屌絲一個'};
相信聰明的你一看就懂,一點就通。
好了,今天的內容差不多就這些了,當然自己要去試一遍,不然沒法真正學到這些知識點的。。
要是光看就會了,我們就全是高考狀元了,不是么。
最后說個小技巧,就是之前輸入過的命令,不必重新輸入,可以通過方向鍵 ↑ 和 ↓ 進行上下查找,這個功能和 cmd 類似哦,非常方便。。
課后練習:(現在直接按F12打開控制台)
1. 查看文章下方 推薦 這個功能所調用的函數源碼 (當然你點下推薦也可以哦,我沒攔着你。o(∩_∩)o )
2. 定位到函數所在文件位置。(高潮要來了)
3. 修改函數使其無效。(其實就是簡單的全局修改調試。)
最后,,如果哪里講的不對,或者理解不了,或者進度跟不上等等等等,請跟帖吐槽。
還有如果你希望我加入什么內容,或者調試什么真實項目或者插件,也可以跟帖哦,當然如果非常麻煩的項目,我也沒辦法寫文章介紹了,,我又不是文章。。。