jQuery 庫中的$()是什么妄壶?
()函數(shù)用于將任何對象包裹成 jQuery 對象题山,允許調(diào)用定義在 jQuery 對象上的多個不同方法胖替∈瞻啵可以將一個選擇器字符串傳入$()函數(shù)坟岔,它會返回一個包含所有匹配的 DOM 元素數(shù)組的 jQuery 對象。
$(document).ready() 是個什么函數(shù)摔桦?為什么要用它社付?
ready()函數(shù)用于在文檔進入ready狀態(tài)時執(zhí)行代碼。當DOM 完全加載(例如HTML被完全解析DOM樹構(gòu)建完成時)邻耕,jQuery允許你執(zhí)行代碼鸥咖。使用$(document).ready()的最大好處在于它適用于所有瀏覽器,jQuery幫你解決了跨瀏覽器的難題赊豌。
JavaScript window.onload 事件和 jQuery ready 函數(shù)有何不同扛或?
1.執(zhí)行時間
window.onload必須等到頁面內(nèi)包括圖片的所有元素加載完畢后才能執(zhí)行。
$(document).ready()是DOM結(jié)構(gòu)繪制完畢后就執(zhí)行碘饼,不必等到加載完畢熙兔。
2.編寫個數(shù)不同
window.onload不能同時編寫多個,如果有多個window.onload方法艾恼,只會執(zhí)行一個
$(document).ready()可以同時編寫多個住涉,并且都可以得到執(zhí)行
3.簡化寫法
window.onload沒有簡化寫法
$(document).ready(function(){})可以簡寫成$(function(){});
如何找到所有 HTML select 標簽的選中項?
用下面的 jQuery 選擇器獲取所有具備 multiple=true 的<select >標簽的選中項:
$('[name=NameOfSelectedTag] :selected')
這段代碼結(jié)合使用了屬性選擇器和:selected選擇器钠绍,結(jié)果只返回被選中的選項舆声。你可按需修改它,比如用id屬性而不是name屬性來獲取<select>標簽柳爽。
jQuery 里的each()是什么函數(shù)媳握?你是如何使用它的?
each()函數(shù)就像是 Java 里的一個 Iterator磷脯,它允許你遍歷一個元素集合蛾找。你可以傳一個函數(shù)給each()方法,被調(diào)用的 jQuery 對象會在其每個元素上執(zhí)行傳入的函數(shù)赵誓。有時這個問題會緊接著上面一個問題打毛,舉個例子柿赊,如何在 alert 框里顯示所有選中項。我們可以用上面的選擇器代碼找出所有選中項幻枉,然后我們在 alert 框中用each()方法來一個個打印它們碰声,代碼如下:
$('[name=NameOfSelectedTag] :selected').each(function(selected) {
alert($(selected).text());
});
其中text()方法返回選項的文本。
你是如何將一個 HTML 元素添加到 DOM 樹中的熬甫?
可以用 jQuery 方法appendTo()將一個 HTML 元素添加到 DOM 樹中胰挑。這是 jQuery 提供的眾多操控 DOM 的方法中的一個。你可以通過appendTo()方法在指定的 DOM 元素末尾添加一個現(xiàn)存的元素或者一個新的 HTML 元素椿肩。
你能用 jQuery 代碼選擇所有在段落內(nèi)部的超鏈接嗎洽腺?
這是另一個關(guān)于選擇器的 jQuery 面試題。就像其他問題那樣覆旱,只需一行 jQuery 代碼就能搞定蘸朋。你可以使用下面這個 jQuery 代碼片段來選擇所有嵌套在段落(<p>標簽)內(nèi)部的超鏈接(<a>標簽)……
(this)返回一個 jQuery 對象,你可以對它調(diào)用多個 jQuery 方法噪沙,比如用 text()獲取文本炼彪,用val() 獲取值等等。而 this 代表當前元素正歼,它是 JavaScript 關(guān)鍵詞中的一個辐马,表示上下文中的當前 DOM 元素。你不能對它調(diào)用 jQuery 方法局义,直到它被
(this)。
你如何使用jQuery來提取一個HTML 標記的屬性 例如鏈接的href?
attr()方法被用來提取任意一個HTML元素的一個屬性的值. 你首先需要利用jQuery選擇及選取到所有的鏈接或者一個特定的鏈接萄唇,然后你可以應(yīng)用attr()方法來獲得他們的href屬性的值檩帐。下面的代碼會找到頁面中所有的鏈接,并返回href值:
$('a').each(function(){
alert($(this).attr('href'));
});
你如何使用jQuery設(shè)置一個屬性值?
前面這個問題之后額外的一個后續(xù)問題是另萤,attr()方法和jQuery中的其它方法一樣湃密,能力不止一樣. 如果你在調(diào)用attr()的同時帶上一個值 例如. attr(name, value), 這里name是屬性的名稱,value是屬性的新值四敞。
jQuery中detach()和remove()方法的區(qū)別是什么?
盡管detach()和remove()方法都被用來移除一個DOM元素, 兩者之間的主要不同在于detach()會保持對過去被解除元素的跟蹤, 因此它可以被取消解除, 而 remove()方法則會保持過去被移除對象的引用. 你也還可以看看 用來向DOM中添加元素的appendTo()方法泛源。
你如何利用jQuery來向一個元素中添加和移除CSS類?
通過利用addClass()和removeClass()這兩個 jQuery 方法。動態(tài)的改變元素的class屬性可以很簡單忿危。例如使用類“.active"來標記它們的未激活和激活狀態(tài)达箍,等等。
使用 CDN 加載 jQuery 庫的主要優(yōu)勢是什么 ? (答案)
這是一個稍微高級點兒的jQuery問題癌蚁。好吧幻梯,除了報錯節(jié)省服務(wù)器帶寬以及更快的下載速度這許多的好處之外, 最重要的是,如果瀏覽器已經(jīng)從同一個CDN下載類相同的 jQuery 版本, 那么它就不會再去下載它一次. 因此今時今日努释,許多公共的網(wǎng)站都將jQuery用于用戶交互和動畫, 如果瀏覽器已經(jīng)有了下載好的jQuery庫碘梢,網(wǎng)站就能有非常好的展示機會。
jQuery.get()和jQuery.ajax()方法之間的區(qū)別是什么?
ajax()方法更強大伐蒂,更具可配置性, 讓你可以指定等待多久煞躬,以及如何處理錯誤。get()方法是一個只獲取一些數(shù)據(jù)的專門化方法逸邦。
jQuery 中的方法鏈是什么恩沛?使用方法鏈有什么好處?
方法鏈是對一個方法返回的結(jié)果調(diào)用另一個方法缕减,這使得代碼簡潔明了雷客,同時由于只對 DOM 進行了一輪查找,性能方面更加出色桥狡。
你要是在一個 jQuery 事件處理程序里返回了 false 會怎樣搅裙?
這通常用于阻止事件向上冒泡。
哪種方式更高效:document.getElementbyId("myId") 還是 $("#myId")裹芝?
第一種部逮,因為它直接調(diào)用了 JavaScript 引擎。