JavaScript 是客戶端腳本的標(biāo)準(zhǔn)語(yǔ)言哺壶,而 jQuery 使得編寫(xiě) JavaScript 更加簡(jiǎn)單器净。你可以只用寫(xiě)幾行的jQuery 代碼就能實(shí)現(xiàn)更多的東西. 它是最長(zhǎng)被用到的 JavaScript 庫(kù)之一,并且現(xiàn)在已經(jīng)很少有不用jQuery 而使用原生 JavaScript 的新項(xiàng)目了。這對(duì)于作為一個(gè) Java web 開(kāi)發(fā)者的你而言意味著你會(huì)在一場(chǎng)Java web開(kāi)發(fā)面試中發(fā)現(xiàn)許多jQuery的面試問(wèn)題.
早些時(shí)候,絕大部分都是 HTTP, HTML, CSS 以及 JavaScript寓落,但最近開(kāi)始,除了 JavaScript 基礎(chǔ)之外荞下,人們也希望知道你是否熟悉 jQuery伶选。這16個(gè)jQuery的問(wèn)題是為web開(kāi)發(fā)者準(zhǔn)備的,且也能夠非常方便你在參加一次電話或者視頻一輪的面試之前糾正一些關(guān)鍵的概念尖昏。如果你是 jQuery 新手仰税,那么它也能夠幫助你更加好的理解基礎(chǔ)知識(shí),并激勵(lì)你去發(fā)現(xiàn)更多東西抽诉。
1. jQuery 庫(kù)中的 $() 是什么肖卧?(答案如下)
() 函數(shù)是 jQuery() 函數(shù)的別稱,乍一看這很怪異掸鹅,還使 jQuery 代碼晦澀難懂塞帐。一旦你適應(yīng)了,你會(huì)愛(ài)上它的簡(jiǎn)潔巍沙。() 函數(shù)用于將任何對(duì)象包裹成 jQuery 對(duì)象葵姥,接著你就被允許調(diào)用定義在 jQuery 對(duì)象上的多個(gè)不同方法。你甚至可以將一個(gè)選擇器字符串傳入 $() 函數(shù)句携,它會(huì)返回一個(gè)包含所有匹配的 DOM 元素?cái)?shù)組的 jQuery 對(duì)象榔幸。這個(gè)問(wèn)題我已經(jīng)見(jiàn)過(guò)好幾次被提及,盡管它非嘲担基礎(chǔ)削咆,它經(jīng)常被用來(lái)區(qū)分一個(gè)開(kāi)發(fā)人員是否了解 jQuery。
2. 網(wǎng)頁(yè)上有 5 個(gè) <div> 元素蠢笋,如何使用 jQuery來(lái)選擇它們拨齐?(答案)
另一個(gè)重要的 jQuery 問(wèn)題是基于選擇器的。jQuery 支持不同類型的選擇器昨寞,例如 ID 選擇器瞻惋、class 選擇器、標(biāo)簽選擇器援岩。鑒于這個(gè)問(wèn)題沒(méi)提到 ID 和 class歼狼,你可以用標(biāo)簽選擇器來(lái)選擇所有的 div 元素。jQuery 代碼:$("div")享怀,這樣會(huì)返回一個(gè)包含所有 5 個(gè) div 標(biāo)簽的 jQuery 對(duì)象羽峰。更詳細(xì)的解答參見(jiàn)上面鏈接的文章。
3. jQuery 里的 ID 選擇器和 class 選擇器有何不同添瓷?(答案)
如果你用過(guò) CSS梅屉,你也許就知道 ID 選擇器和 class 選擇器之間的差異,jQuery 也同樣如此仰坦。ID 選擇器使用 ID 來(lái)選擇元素履植,比如 #element1,而 class 選擇器使用 CSS class 來(lái)選擇元素悄晃。當(dāng)你只需要選擇一個(gè)元素時(shí)玫霎,使用 ID 選擇器,而如果你想要選擇一組具有相同 CSS class 的元素妈橄,就要用 class 選擇器庶近。在面試過(guò)程中,你有很大幾率會(huì)被要求使用 ID 選擇器和 class 選擇器來(lái)寫(xiě)代碼眷蚓。下面的 jQuery 代碼使用了 ID 選擇器和 class 選擇器:
$(``'#LoginTextBox'``) ``// Returns element wrapped as jQuery object with id='LoginTextBox'
$(``'.active'``) ``// Returns all elements with CSS class active.
正如你所見(jiàn)鼻种,從語(yǔ)法角度來(lái)說(shuō),ID 選擇器和 class 選擇器的另一個(gè)不同之處是沙热,前者用字符”#”而后者用字符”.”叉钥。更詳細(xì)的分析和討論參見(jiàn)上面的答案鏈接罢缸。
4. 如何在點(diǎn)擊一個(gè)按鈕時(shí)使用 jQuery 隱藏一個(gè)圖片?
這是一個(gè)事件處理問(wèn)題投队。jQuery為按鈕點(diǎn)擊之類的事件提供了很好的支持枫疆。你可以通過(guò)以下代碼去隱藏一個(gè)通過(guò)ID或class定位到的圖片。你需要知道如何為按鈕設(shè)置事件并執(zhí)行hide() 方法敷鸦,代碼如下所示:
$(``'#ButtonToClick'``).click(``function``(){
$(``'#ImageToHide'``).hide();
});
我喜歡這個(gè)問(wèn)題息楔,因?yàn)楹苜N近實(shí)際使用,代碼也不復(fù)雜扒披。
5. $(document).ready() 是個(gè)什么函數(shù)值依?為什么要用它?(answer)
這個(gè)問(wèn)題很重要碟案,并且常常被問(wèn)到愿险。 ready() 函數(shù)用于在文檔進(jìn)入ready狀態(tài)時(shí)執(zhí)行代碼。當(dāng)DOM 完全加載(例如HTML被完全解析DOM樹(shù)構(gòu)建完成時(shí))蟆淀,jQuery允許你執(zhí)行代碼拯啦。使用$(document).ready()的最大好處在于它適用于所有瀏覽器,jQuery幫你解決了跨瀏覽器的難題熔任。需要進(jìn)一步了解的用戶可以點(diǎn)擊 answer鏈接查看詳細(xì)討論褒链。
6. JavaScript window.onload 事件和 jQuery ready 函數(shù)有何不同?(答案)
這個(gè)問(wèn)答是緊接著上一個(gè)的疑苔。JavaScript window.onload 事件和 jQuery ready 函數(shù)之間的主要區(qū)別是甫匹,前者除了要等待 DOM 被創(chuàng)建還要等到包括大型圖片、音頻惦费、視頻在內(nèi)的所有外部資源都完全加載兵迅。如果加載圖片和媒體內(nèi)容花費(fèi)了大量時(shí)間,用戶就會(huì)感受到定義在 window.onload 事件上的代碼在執(zhí)行時(shí)有明顯的延遲薪贫。
另一方面恍箭,jQuery ready() 函數(shù)只需對(duì) DOM 樹(shù)的等待,而無(wú)需對(duì)圖像或外部資源加載的等待瞧省,從而執(zhí)行起來(lái)更快扯夭。使用 jQuery $(document).ready() 的另一個(gè)優(yōu)勢(shì)是你可以在網(wǎng)頁(yè)里多次使用它,瀏覽器會(huì)按它們?cè)?HTML 頁(yè)面里出現(xiàn)的順序執(zhí)行它們鞍匾,相反對(duì)于 onload 技術(shù)而言交洗,只能在單一函數(shù)里使用。鑒于這個(gè)好處橡淑,用 jQuery ready() 函數(shù)比用 JavaScript window.onload 事件要更好些构拳。
7. 如何找到所有 HTML select 標(biāo)簽的選中項(xiàng)?(答案如下)
這是面試?yán)锉容^棘手的 jQuery 問(wèn)題之一。這是個(gè)基礎(chǔ)的問(wèn)題置森,但是別期望每個(gè) jQuery 初學(xué)者都知道它斗埂。你能用下面的 jQuery 選擇器獲取所有具備 multiple=true 的 <select > 標(biāo)簽的選中項(xiàng):
$(``'[name=NameOfSelectedTag] :selected'``)
這段代碼結(jié)合使用了屬性選擇器和 :selected 選擇器,結(jié)果只返回被選中的選項(xiàng)暇藏。你可按需修改它蜜笤,比如用 id 屬性而不是 name 屬性來(lái)獲取 <select> 標(biāo)簽。
8. jQuery 里的 each() 是什么函數(shù)盐碱?你是如何使用它的?(答案如下)
each() 函數(shù)就像是 Java 里的一個(gè) Iterator沪伙,它允許你遍歷一個(gè)元素集合瓮顽。你可以傳一個(gè)函數(shù)給 each() 方法,被調(diào)用的 jQuery 對(duì)象會(huì)在其每個(gè)元素上執(zhí)行傳入的函數(shù)围橡。有時(shí)這個(gè)問(wèn)題會(huì)緊接著上面一個(gè)問(wèn)題暖混,舉個(gè)例子,如何在 alert 框里顯示所有選中項(xiàng)翁授。我們可以用上面的選擇器代碼找出所有選中項(xiàng)拣播,然后我們?cè)?alert 框中用 each() 方法來(lái)一個(gè)個(gè)打印它們,代碼如下:
$(``'[name=NameOfSelectedTag] :selected'``).each(``function``(selected) {
alert($(selected).text());
});
其中 text() 方法返回選項(xiàng)的文本收擦。
9. 你是如何將一個(gè) HTML 元素添加到 DOM 樹(shù)中的贮配?(答案如下)
你可以用 jQuery 方法 appendTo() 將一個(gè) HTML 元素添加到 DOM 樹(shù)中。這是 jQuery 提供的眾多操控 DOM 的方法中的一個(gè)塞赂。你可以通過(guò) appendTo() 方法在指定的 DOM 元素末尾添加一個(gè)現(xiàn)存的元素或者一個(gè)新的 HTML 元素泪勒。
10. 你能用 jQuery 代碼選擇所有在段落內(nèi)部的超鏈接嗎?(答案略)
這是另一個(gè)關(guān)于選擇器的 jQuery 面試題宴猾。就像其他問(wèn)題那樣圆存,只需一行 jQuery 代碼就能搞定。你可以使用下面這個(gè) jQuery 代碼片段來(lái)選擇所有嵌套在段落(<p>標(biāo)簽)內(nèi)部的超鏈接(<a>標(biāo)簽)……
11. $(this) 和 this 關(guān)鍵字在 jQuery 中有何不同仇哆?(答案如下)
這對(duì)于很多 jQuery 初學(xué)者來(lái)說(shuō)是一個(gè)棘手的問(wèn)題沦辙,其實(shí)是個(gè)簡(jiǎn)單的問(wèn)題。(this) 返回一個(gè) jQuery 對(duì)象讹剔,你可以對(duì)它調(diào)用多個(gè) jQuery 方法油讯,比如用 text() 獲取文本,用val() 獲取值等等辟拷。而 this 代表當(dāng)前元素撞羽,它是 JavaScript 關(guān)鍵詞中的一個(gè),表示上下文中的當(dāng)前 DOM 元素衫冻。你不能對(duì)它調(diào)用 jQuery 方法诀紊,直到它被() 函數(shù)包裹,例如 $(this)隅俘。
12. 你如何使用jQuery來(lái)提取一個(gè)HTML 標(biāo)記的屬性 例如. 鏈接的href? (答案)
attr() 方法被用來(lái)提取任意一個(gè)HTML元素的一個(gè)屬性的值. 你首先需要利用jQuery選擇及選取到所有的鏈接或者一個(gè)特定的鏈接邻奠,然后你可以應(yīng)用attr()方法來(lái)獲得他們的href屬性的值笤喳。下面的代碼會(huì)找到頁(yè)面中所有的鏈接并返回href值:
$(``'a'``).each(``function``(){
alert($(``this``).attr(``'href'``));
});
13. 你如何使用jQuery設(shè)置一個(gè)屬性值? (答案)
前面這個(gè)問(wèn)題之后額外的一個(gè)后續(xù)問(wèn)題是,attr()方法和jQuery中的其它方法一樣碌宴,能力不止一樣. 如果你在調(diào)用attr()的同時(shí)帶上一個(gè)值 例如. attr(name, value), 這里name是屬性的名稱杀狡,value是屬性的新值。
14. jQuery中 detach() 和 remove() 方法的區(qū)別是什么? (答案)
盡管 detach() 和 remove() 方法都被用來(lái)移除一個(gè)DOM元素, 兩者之間的主要不同在于 detach() 會(huì)保持對(duì)過(guò)去被解除元素的跟蹤, 因此它可以被取消解除, 而 remove() 方法則會(huì)保持過(guò)去被移除對(duì)象的引用. 你也還可以看看 用來(lái)向DOM中添加元素的 appendTo() 方法.
15. 你如何利用jQuery來(lái)向一個(gè)元素中添加和移除CSS類? (答案)
通過(guò)利用 addClass() 和 removeClass() 這兩個(gè) jQuery 方法贰镣。動(dòng)態(tài)的改變?cè)氐腸lass屬性可以很簡(jiǎn)單例如. 使用類“.active"來(lái)標(biāo)記它們的未激活和激活狀態(tài)呜象,等等.
16. 使用 CDN 加載 jQuery 庫(kù)的主要優(yōu)勢(shì)是什么 ? (答案)
這是一個(gè)稍微高級(jí)點(diǎn)兒的jQuery問(wèn)題。好吧碑隆,除了報(bào)錯(cuò)節(jié)省服務(wù)器帶寬以及更快的下載速度這許多的好處之外, 最重要的是恭陡,如果瀏覽器已經(jīng)從同一個(gè)CDN下載類相同的 jQuery 版本, 那么它就不會(huì)再去下載它一次. 因此今時(shí)今日,許多公共的網(wǎng)站都將jQuery用于用戶交互和動(dòng)畫(huà), 如果瀏覽器已經(jīng)有了下載好的jQuery庫(kù)上煤,網(wǎng)站就能有非常好的展示機(jī)會(huì)休玩。
17. jQuery.get() 和 jQuery.ajax() 方法之間的區(qū)別是什么?
ajax() 方法更強(qiáng)大,更具可配置性, 讓你可以指定等待多久劫狠,以及如何處理錯(cuò)誤拴疤。get() 方法是一個(gè)只獲取一些數(shù)據(jù)的專門(mén)化方法。
18. jQuery 中的方法鏈?zhǔn)鞘裁炊琅ⅲ渴褂梅椒ㄦ溣惺裁春锰帲?/h3>
方法鏈?zhǔn)菍?duì)一個(gè)方法返回的結(jié)果調(diào)用另一個(gè)方法呐矾,這使得代碼簡(jiǎn)潔明了,同時(shí)由于只對(duì) DOM 進(jìn)行了一輪查找阐肤,性能方面更加出色凫佛。
19. 你要是在一個(gè) jQuery 事件處理程序里返回了 false 會(huì)怎樣?
這通常用于阻止事件向上冒泡孕惜。
20. 哪種方式更高效:document.getElementbyId("myId") 還是 $("#myId")愧薛?
第一種,因?yàn)樗苯诱{(diào)用了 JavaScript 引擎衫画。
jQuery 面試問(wèn)題和答案
JavaScript 是客戶端腳本的標(biāo)準(zhǔn)語(yǔ)言毫炉,而 jQuery 使得編寫(xiě) JavaScript 更加簡(jiǎn)單。你可以只用寫(xiě)幾行的jQuery 代碼就能實(shí)現(xiàn)更多的東西. 它是最長(zhǎng)被用到的 JavaScript 庫(kù)之一削罩,并且現(xiàn)在已經(jīng)很少有不用jQuery 而使用原生 JavaScript 的新項(xiàng)目了瞄勾。這對(duì)于作為一個(gè) Java web 開(kāi)發(fā)者的你而言意味著你會(huì)在一場(chǎng)Java web開(kāi)發(fā)面試中發(fā)現(xiàn)許多jQuery的面試問(wèn)題.
早些時(shí)候,絕大部分都是 HTTP, HTML, CSS 以及 JavaScript弥激,但最近開(kāi)始进陡,除了 JavaScript 基礎(chǔ)之外,人們也希望知道你是否熟悉 jQuery微服。這16個(gè)jQuery的問(wèn)題是為web開(kāi)發(fā)者準(zhǔn)備的趾疚,且也能夠非常方便你在參加一次電話或者視頻一輪的面試之前糾正一些關(guān)鍵的概念。如果你是 jQuery 新手,那么它也能夠幫助你更加好的理解基礎(chǔ)知識(shí)糙麦,并激勵(lì)你去發(fā)現(xiàn)更多東西辛孵。
1. jQuery 庫(kù)中的 $() 是什么?(答案如下)
() 函數(shù)是 jQuery() 函數(shù)的別稱赡磅,乍一看這很怪異魄缚,還使 jQuery 代碼晦澀難懂。一旦你適應(yīng)了焚廊,你會(huì)愛(ài)上它的簡(jiǎn)潔冶匹。() 函數(shù)用于將任何對(duì)象包裹成 jQuery 對(duì)象,接著你就被允許調(diào)用定義在 jQuery 對(duì)象上的多個(gè)不同方法咆瘟。你甚至可以將一個(gè)選擇器字符串傳入 $() 函數(shù)徙硅,它會(huì)返回一個(gè)包含所有匹配的 DOM 元素?cái)?shù)組的 jQuery 對(duì)象。這個(gè)問(wèn)題我已經(jīng)見(jiàn)過(guò)好幾次被提及搞疗,盡管它非常基礎(chǔ)须肆,它經(jīng)常被用來(lái)區(qū)分一個(gè)開(kāi)發(fā)人員是否了解 jQuery匿乃。
2. 網(wǎng)頁(yè)上有 5 個(gè) <div> 元素,如何使用 jQuery來(lái)選擇它們豌汇?(答案)
另一個(gè)重要的 jQuery 問(wèn)題是基于選擇器的幢炸。jQuery 支持不同類型的選擇器,例如 ID 選擇器拒贱、class 選擇器宛徊、標(biāo)簽選擇器。鑒于這個(gè)問(wèn)題沒(méi)提到 ID 和 class逻澳,你可以用標(biāo)簽選擇器來(lái)選擇所有的 div 元素闸天。jQuery 代碼:$("div"),這樣會(huì)返回一個(gè)包含所有 5 個(gè) div 標(biāo)簽的 jQuery 對(duì)象斜做。更詳細(xì)的解答參見(jiàn)上面鏈接的文章苞氮。
3. jQuery 里的 ID 選擇器和 class 選擇器有何不同?(答案)
如果你用過(guò) CSS瓤逼,你也許就知道 ID 選擇器和 class 選擇器之間的差異笼吟,jQuery 也同樣如此。ID 選擇器使用 ID 來(lái)選擇元素霸旗,比如 #element1贷帮,而 class 選擇器使用 CSS class 來(lái)選擇元素。當(dāng)你只需要選擇一個(gè)元素時(shí)诱告,使用 ID 選擇器撵枢,而如果你想要選擇一組具有相同 CSS class 的元素,就要用 class 選擇器。在面試過(guò)程中诲侮,你有很大幾率會(huì)被要求使用 ID 選擇器和 class 選擇器來(lái)寫(xiě)代碼镀虐。下面的 jQuery 代碼使用了 ID 選擇器和 class 選擇器:
$(``'#LoginTextBox'``) ``// Returns element wrapped as jQuery object with id='LoginTextBox'
$(``'.active'``) ``// Returns all elements with CSS class active.
正如你所見(jiàn),從語(yǔ)法角度來(lái)說(shuō)沟绪,ID 選擇器和 class 選擇器的另一個(gè)不同之處是刮便,前者用字符”#”而后者用字符”.”。更詳細(xì)的分析和討論參見(jiàn)上面的答案鏈接绽慈。
4. 如何在點(diǎn)擊一個(gè)按鈕時(shí)使用 jQuery 隱藏一個(gè)圖片恨旱?
這是一個(gè)事件處理問(wèn)題。jQuery為按鈕點(diǎn)擊之類的事件提供了很好的支持坝疼。你可以通過(guò)以下代碼去隱藏一個(gè)通過(guò)ID或class定位到的圖片搜贤。你需要知道如何為按鈕設(shè)置事件并執(zhí)行hide() 方法,代碼如下所示:
$(``'#ButtonToClick'``).click(``function``(){
$(``'#ImageToHide'``).hide();
});
我喜歡這個(gè)問(wèn)題钝凶,因?yàn)楹苜N近實(shí)際使用仪芒,代碼也不復(fù)雜。
5. $(document).ready() 是個(gè)什么函數(shù)耕陷?為什么要用它掂名?(answer)
這個(gè)問(wèn)題很重要,并且常常被問(wèn)到哟沫。 ready() 函數(shù)用于在文檔進(jìn)入ready狀態(tài)時(shí)執(zhí)行代碼饺蔑。當(dāng)DOM 完全加載(例如HTML被完全解析DOM樹(shù)構(gòu)建完成時(shí)),jQuery允許你執(zhí)行代碼嗜诀。使用$(document).ready()的最大好處在于它適用于所有瀏覽器猾警,jQuery幫你解決了跨瀏覽器的難題。需要進(jìn)一步了解的用戶可以點(diǎn)擊 answer鏈接查看詳細(xì)討論隆敢。
6. JavaScript window.onload 事件和 jQuery ready 函數(shù)有何不同发皿?(答案)
這個(gè)問(wèn)答是緊接著上一個(gè)的。JavaScript window.onload 事件和 jQuery ready 函數(shù)之間的主要區(qū)別是筑公,前者除了要等待 DOM 被創(chuàng)建還要等到包括大型圖片雳窟、音頻、視頻在內(nèi)的所有外部資源都完全加載匣屡。如果加載圖片和媒體內(nèi)容花費(fèi)了大量時(shí)間封救,用戶就會(huì)感受到定義在 window.onload 事件上的代碼在執(zhí)行時(shí)有明顯的延遲。
另一方面捣作,jQuery ready() 函數(shù)只需對(duì) DOM 樹(shù)的等待誉结,而無(wú)需對(duì)圖像或外部資源加載的等待,從而執(zhí)行起來(lái)更快券躁。使用 jQuery $(document).ready() 的另一個(gè)優(yōu)勢(shì)是你可以在網(wǎng)頁(yè)里多次使用它惩坑,瀏覽器會(huì)按它們?cè)?HTML 頁(yè)面里出現(xiàn)的順序執(zhí)行它們掉盅,相反對(duì)于 onload 技術(shù)而言,只能在單一函數(shù)里使用以舒。鑒于這個(gè)好處趾痘,用 jQuery ready() 函數(shù)比用 JavaScript window.onload 事件要更好些。
7. 如何找到所有 HTML select 標(biāo)簽的選中項(xiàng)蔓钟?(答案如下)
這是面試?yán)锉容^棘手的 jQuery 問(wèn)題之一永票。這是個(gè)基礎(chǔ)的問(wèn)題,但是別期望每個(gè) jQuery 初學(xué)者都知道它滥沫。你能用下面的 jQuery 選擇器獲取所有具備 multiple=true 的 <select > 標(biāo)簽的選中項(xiàng):
$(``'[name=NameOfSelectedTag] :selected'``)
這段代碼結(jié)合使用了屬性選擇器和 :selected 選擇器侣集,結(jié)果只返回被選中的選項(xiàng)。你可按需修改它,比如用 id 屬性而不是 name 屬性來(lái)獲取 <select> 標(biāo)簽。
8. jQuery 里的 each() 是什么函數(shù)岳链?你是如何使用它的?(答案如下)
each() 函數(shù)就像是 Java 里的一個(gè) Iterator荆残,它允許你遍歷一個(gè)元素集合。你可以傳一個(gè)函數(shù)給 each() 方法,被調(diào)用的 jQuery 對(duì)象會(huì)在其每個(gè)元素上執(zhí)行傳入的函數(shù)。有時(shí)這個(gè)問(wèn)題會(huì)緊接著上面一個(gè)問(wèn)題斋泄,舉個(gè)例子,如何在 alert 框里顯示所有選中項(xiàng)镐牺。我們可以用上面的選擇器代碼找出所有選中項(xiàng),然后我們?cè)?alert 框中用 each() 方法來(lái)一個(gè)個(gè)打印它們魁莉,代碼如下:
$(``'[name=NameOfSelectedTag] :selected'``).each(``function``(selected) {
alert($(selected).text());
});
其中 text() 方法返回選項(xiàng)的文本睬涧。
9. 你是如何將一個(gè) HTML 元素添加到 DOM 樹(shù)中的?(答案如下)
你可以用 jQuery 方法 appendTo() 將一個(gè) HTML 元素添加到 DOM 樹(shù)中旗唁。這是 jQuery 提供的眾多操控 DOM 的方法中的一個(gè)畦浓。你可以通過(guò) appendTo() 方法在指定的 DOM 元素末尾添加一個(gè)現(xiàn)存的元素或者一個(gè)新的 HTML 元素。
10. 你能用 jQuery 代碼選擇所有在段落內(nèi)部的超鏈接嗎检疫?(答案略)
這是另一個(gè)關(guān)于選擇器的 jQuery 面試題讶请。就像其他問(wèn)題那樣,只需一行 jQuery 代碼就能搞定屎媳。你可以使用下面這個(gè) jQuery 代碼片段來(lái)選擇所有嵌套在段落(<p>標(biāo)簽)內(nèi)部的超鏈接(<a>標(biāo)簽)……
11. $(this) 和 this 關(guān)鍵字在 jQuery 中有何不同夺溢?(答案如下)
這對(duì)于很多 jQuery 初學(xué)者來(lái)說(shuō)是一個(gè)棘手的問(wèn)題,其實(shí)是個(gè)簡(jiǎn)單的問(wèn)題烛谊。(this) 返回一個(gè) jQuery 對(duì)象风响,你可以對(duì)它調(diào)用多個(gè) jQuery 方法,比如用 text() 獲取文本丹禀,用val() 獲取值等等状勤。而 this 代表當(dāng)前元素鞋怀,它是 JavaScript 關(guān)鍵詞中的一個(gè),表示上下文中的當(dāng)前 DOM 元素持搜。你不能對(duì)它調(diào)用 jQuery 方法密似,直到它被() 函數(shù)包裹,例如 $(this)葫盼。
12. 你如何使用jQuery來(lái)提取一個(gè)HTML 標(biāo)記的屬性 例如. 鏈接的href? (答案)
attr() 方法被用來(lái)提取任意一個(gè)HTML元素的一個(gè)屬性的值. 你首先需要利用jQuery選擇及選取到所有的鏈接或者一個(gè)特定的鏈接残腌,然后你可以應(yīng)用attr()方法來(lái)獲得他們的href屬性的值。下面的代碼會(huì)找到頁(yè)面中所有的鏈接并返回href值:
$(``'a'``).each(``function``(){
alert($(``this``).attr(``'href'``));
});
13. 你如何使用jQuery設(shè)置一個(gè)屬性值? (答案)
前面這個(gè)問(wèn)題之后額外的一個(gè)后續(xù)問(wèn)題是剪返,attr()方法和jQuery中的其它方法一樣废累,能力不止一樣. 如果你在調(diào)用attr()的同時(shí)帶上一個(gè)值 例如. attr(name, value), 這里name是屬性的名稱,value是屬性的新值脱盲。
14. jQuery中 detach() 和 remove() 方法的區(qū)別是什么? (答案)
盡管 detach() 和 remove() 方法都被用來(lái)移除一個(gè)DOM元素, 兩者之間的主要不同在于 detach() 會(huì)保持對(duì)過(guò)去被解除元素的跟蹤, 因此它可以被取消解除, 而 remove() 方法則會(huì)保持過(guò)去被移除對(duì)象的引用. 你也還可以看看 用來(lái)向DOM中添加元素的 appendTo() 方法.
15. 你如何利用jQuery來(lái)向一個(gè)元素中添加和移除CSS類? (答案)
通過(guò)利用 addClass() 和 removeClass() 這兩個(gè) jQuery 方法邑滨。動(dòng)態(tài)的改變?cè)氐腸lass屬性可以很簡(jiǎn)單例如. 使用類“.active"來(lái)標(biāo)記它們的未激活和激活狀態(tài),等等.
16. 使用 CDN 加載 jQuery 庫(kù)的主要優(yōu)勢(shì)是什么 ? (答案)
這是一個(gè)稍微高級(jí)點(diǎn)兒的jQuery問(wèn)題钱反。好吧掖看,除了報(bào)錯(cuò)節(jié)省服務(wù)器帶寬以及更快的下載速度這許多的好處之外, 最重要的是,如果瀏覽器已經(jīng)從同一個(gè)CDN下載類相同的 jQuery 版本, 那么它就不會(huì)再去下載它一次. 因此今時(shí)今日面哥,許多公共的網(wǎng)站都將jQuery用于用戶交互和動(dòng)畫(huà), 如果瀏覽器已經(jīng)有了下載好的jQuery庫(kù)哎壳,網(wǎng)站就能有非常好的展示機(jī)會(huì)。
17. jQuery.get() 和 jQuery.ajax() 方法之間的區(qū)別是什么?
ajax() 方法更強(qiáng)大尚卫,更具可配置性, 讓你可以指定等待多久归榕,以及如何處理錯(cuò)誤。get() 方法是一個(gè)只獲取一些數(shù)據(jù)的專門(mén)化方法吱涉。
18. jQuery 中的方法鏈?zhǔn)鞘裁瓷残梗渴褂梅椒ㄦ溣惺裁春锰帲?/h3>
方法鏈?zhǔn)菍?duì)一個(gè)方法返回的結(jié)果調(diào)用另一個(gè)方法,這使得代碼簡(jiǎn)潔明了怎爵,同時(shí)由于只對(duì) DOM 進(jìn)行了一輪查找特石,性能方面更加出色。
19. 你要是在一個(gè) jQuery 事件處理程序里返回了 false 會(huì)怎樣鳖链?
這通常用于阻止事件向上冒泡姆蘸。
20. 哪種方式更高效:document.getElementbyId("myId") 還是 $("#myId")?
第一種芙委,因?yàn)樗苯诱{(diào)用了 JavaScript 引擎逞敷。