教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Android培訓(xùn)之常見的 20 個(gè) jQuery 面試問題及答案 (2)

更新時(shí)間:2016年10月27日17時(shí)23分 來源:傳智播客Android培訓(xùn) 瀏覽次數(shù):

6. JavaScript window.onload 事件和 jQuery ready 函數(shù)有何不同?(答案

  這個(gè)問答是緊接著上一個(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 樹的等待,而無需對(duì)圖像或外部資源加載的等待,從而執(zhí)行起來更快。使用 jQuery $(document).ready() 的另一個(gè)優(yōu)勢(shì)是你可以在網(wǎng)頁里多次使用它,瀏覽器會(huì)按它們?cè)?HTML 頁面里出現(xiàn)的順序執(zhí)行它們,相反對(duì)于 onload 技術(shù)而言,只能在單一函數(shù)里使用。鑒于這個(gè)好處,用 jQuery ready() 函數(shù)比用 JavaScript window.onload 事件要更好些。

  7. 如何找到所有 HTML select 標(biāo)簽的選中項(xiàng)?(答案如下)

  這是面試?yán)锉容^棘手的 jQuery 問題之一。這是個(gè)基礎(chǔ)的問題,但是別期望每個(gè) jQuery 初學(xué)者都知道它。你能用下面的 jQuery 選擇器獲取所有具備 multiple=true 的 <select > 標(biāo)簽的選中項(xiàng):

1
$('[name=NameOfSelectedTag] :selected')

  這段代碼結(jié)合使用了屬性選擇器和 :selected 選擇器,結(jié)果只返回被選中的選項(xiàng)。你可按需修改它,比如用 id 屬性而不是 name 屬性來獲取 <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è)問題會(huì)緊接著上面一個(gè)問題,舉個(gè)例子,如何在 alert 框里顯示所有選中項(xiàng)。我們可以用上面的選擇器代碼找出所有選中項(xiàng),然后我們?cè)?alert 框中用 each() 方法來一個(gè)個(gè)打印它們,代碼如下:

1
2
3
$('[name=NameOfSelectedTag] :selected').each(function(selected) {
    alert($(selected).text());
});

  其中 text() 方法返回選項(xiàng)的文本。

  9. 你是如何將一個(gè) HTML 元素添加到 DOM 樹中的?(答案如下)

  你可以用 jQuery 方法 appendTo() 將一個(gè) HTML 元素添加到 DOM 樹中。這是 jQuery 提供的眾多操控 DOM 的方法中的一個(gè)。你可以通過 appendTo() 方法在指定的 DOM 元素末尾添加一個(gè)現(xiàn)存的元素或者一個(gè)新的 HTML 元素。

  10. 你能用 jQuery 代碼選擇所有在段落內(nèi)部的超鏈接嗎?(答案略)

  這是另一個(gè)關(guān)于選擇器的 jQuery 面試題。就像其他問題那樣,只需一行 jQuery 代碼就能搞定。你可以使用下面這個(gè) jQuery 代碼片段來選擇所有嵌套在段落(<p>標(biāo)簽)內(nèi)部的超鏈接(<a>標(biāo)簽)……

  11. $(this) 和 this 關(guān)鍵字在 jQuery 中有何不同?(答案如下)

  這對(duì)于很多 jQuery 初學(xué)者來說是一個(gè)棘手的問題,其實(shí)是個(gè)簡單的問題。$(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來提取一個(gè)HTML 標(biāo)記的屬性 例如. 鏈接的href? (答案)

  attr() 方法被用來提取任意一個(gè)HTML元素的一個(gè)屬性的值. 你首先需要利用jQuery選擇及選取到所有的鏈接或者一個(gè)特定的鏈接,然后你可以應(yīng)用attr()方法來獲得他們的href屬性的值。下面的代碼會(huì)找到頁面中所有的鏈接并返回href值:

1
2
3
$('a').each(function(){
   alert($(this).attr('href'));
});

  13. 你如何使用jQuery設(shè)置一個(gè)屬性值? (答案)

  前面這個(gè)問題之后額外的一個(gè)后續(xù)問題是,attr()方法和jQuery中的其它方法一樣,能力不止一樣. 如果你在調(diào)用attr()的同時(shí)帶上一個(gè)值 例如. attr(name, value), 這里name是屬性的名稱,value是屬性的新值。



本文版權(quán)歸傳智播客Android培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客Android培訓(xùn)學(xué)院
首發(fā):http://xamj520.com/Android
0 分享到:
和我們?cè)诰€交談!