更新時(shí)間:2016年10月27日17時(shí)23分 來源:傳智播客Android培訓(xùn) 瀏覽次數(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 事件要更好些。
這是面試?yán)锉容^棘手的 jQuery 問題之一。這是個(gè)基礎(chǔ)的問題,但是別期望每個(gè) jQuery 初學(xué)者都知道它。你能用下面的 jQuery 選擇器獲取所有具備 multiple=true 的 <select > 標(biāo)簽的選中項(xiàng):
這段代碼結(jié)合使用了屬性選擇器和 :selected 選擇器,結(jié)果只返回被選中的選項(xiàng)。你可按需修改它,比如用 id 屬性而不是 name 屬性來獲取 <select> 標(biāo)簽。
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è)打印它們,代碼如下:
其中 text() 方法返回選項(xiàng)的文本。
你可以用 jQuery 方法 appendTo() 將一個(gè) HTML 元素添加到 DOM 樹中。這是 jQuery 提供的眾多操控 DOM 的方法中的一個(gè)。你可以通過 appendTo() 方法在指定的 DOM 元素末尾添加一個(gè)現(xiàn)存的元素或者一個(gè)新的 HTML 元素。
這是另一個(gè)關(guān)于選擇器的 jQuery 面試題。就像其他問題那樣,只需一行 jQuery 代碼就能搞定。你可以使用下面這個(gè) jQuery 代碼片段來選擇所有嵌套在段落(<p>標(biāo)簽)內(nèi)部的超鏈接(<a>標(biāo)簽)……
這對(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)。
attr() 方法被用來提取任意一個(gè)HTML元素的一個(gè)屬性的值. 你首先需要利用jQuery選擇及選取到所有的鏈接或者一個(gè)特定的鏈接,然后你可以應(yīng)用attr()方法來獲得他們的href屬性的值。下面的代碼會(huì)找到頁面中所有的鏈接并返回href值:
前面這個(gè)問題之后額外的一個(gè)后續(xù)問題是,attr()方法和jQuery中的其它方法一樣,能力不止一樣. 如果你在調(diào)用attr()的同時(shí)帶上一個(gè)值 例如. attr(name, value), 這里name是屬性的名稱,value是屬性的新值。
北京校區(qū)