web前端教程分享Jquery常見面試題。小編為大家準備了前端面試題系列,通過Web知識的整理以及經(jīng)驗的總結(jié),希望能幫到更多的前端面試者。
1、 jQuery 庫中的 $() 是什么?
$() 函數(shù)是 jQuery() 函數(shù)的別稱。$() 函數(shù)用于將任何對象包裹成 jQuery 對象,接著你就被允許調(diào)用定義在 jQuery 對象上的多個不同方法。你可以將一個選擇器字符串傳入 $() 函數(shù),它會返回一個包含所有匹配的 DOM 元素數(shù)組的 jQuery 對象。
2、如何找到所有 HTML select 標簽的選中項?
$('[name=selectname] :selected')
3、$(this) 和 this 關(guān)鍵字在 jQuery 中有何不同?
$(this) 返回一個 jQuery 對象,你可以對它調(diào)用多個 jQuery 方法,比如用 text() 獲取文本,用val() 獲取值等等。
而 this 代表當前元素,它是 JavaScript 關(guān)鍵詞中的一個,表示上下文中的當前 DOM 元素。你不能對它調(diào)用 jQuery 方法,直到它被 $() 函數(shù)包裹,例如 $(this)。
4、jquery怎么移除標簽onclick屬性?
獲得a標簽的onclick屬性: $("a").attr("onclick")
刪除onclick屬性:$("a").removeAttr("onclick")
設(shè)置onclick屬性:$("a").attr("onclick","test();")
5、jquery中addClass、removeClass、toggleClass的使用。
$(selector).addClass(class):為每個匹配的元素添加指定的類名
$(selector).removeClass(class):從所有匹配的元素中刪除全部或者指定的類,刪除class中某個值;
$(selector).toggleClass(class):如果存在(不存在)就刪除(添加)一個類
$(selector).removeAttr(class);刪除class這個屬性;
6、JQuery有幾種選擇器?
(1)、基本選擇器:#id,class,element,*;
(2)、層次選擇器:parent > child,prev + next ,prev ~ siblings
(3)、基本過濾器選擇器::first,:last ,:not ,:even ,:odd ,:eq ,:gt ,:lt
(4)、內(nèi)容過濾器選擇器: :contains ,:empty ,:has ,:parent
(5)、可見性過濾器選擇器::hidden ,:visible
(6)、屬性過濾器選擇器:[attribute] ,[attribute=value] ,[attribute!=value] ,[attribute^=value] ,[attribute$=value] ,[attribute*=value]
(7)、子元素過濾器選擇器::nth-child ,:first-child ,:last-child ,:only-child
(8)、表單選擇器: :input ,:text ,:password ,:radio ,:checkbox ,:submit 等;
(9)、表單過濾器選擇器::enabled ,:disabled ,:checked ,:selected
7、jQuery中的Delegate()函數(shù)有什么作用?
delegate()會在以下兩個情況下使用到:
1)、如果你有一個父元素,需要給其下的子元素添加事件,這時你可以使用delegate()了,代碼如下:
$("ul").delegate("li", "click", function(){ $(this).hide(); });
2)、當元素在當前頁面中不可用時,可以使用delegate()
8、$(document).ready()方法和window.onload有什么區(qū)別?
(1)、window.onload方法是在網(wǎng)頁中所有的元素(包括元素的所有關(guān)聯(lián)文件)完全加載到瀏覽器后才執(zhí)行的。
(2)、$(document).ready() 方法可以在DOM載入就緒時就對其進行操縱,并調(diào)用執(zhí)行綁定的函數(shù)。
9、如何用jQuery禁用瀏覽器的前進后退按鈕?
實現(xiàn)代碼如下:
<script type="text/javascript" language="javascript">
$(document).ready(function() {
window.history.forward(1);
//OR window.history.forward(-1);
});
</script>
10、 jquery中$.get()提交和$.post()提交有區(qū)別嗎?
相同點:都是異步請求的方式來獲取服務(wù)端的數(shù)據(jù);
異同點:
1、請求方式不同:$.get() 方法使用GET方法來進行異步請求的。$.post() 方法使用POST方法來進行異步請求的。
2、參數(shù)傳遞方式不同:get請求會將參數(shù)跟在URL后進行傳遞,而POST請求則是作為HTTP消息的實體內(nèi)容發(fā)送給Web服務(wù)器的,這種傳遞是對用戶不可見的。
3、數(shù)據(jù)傳輸大小不同:get方式傳輸?shù)臄?shù)據(jù)大小不能超過2KB 而POST要大的多
4、安全問題: GET 方式請求的數(shù)據(jù)會被瀏覽器緩存起來,因此有安全問題。
11、寫出一個簡單的$.ajax()的請求方式?
$.ajax({
url:'http://www.baidu.com',
type:'POST',
data:data,
cache:true,
headers:{},
beforeSend:function(){},
success:function(){},
error:function(){},
complete:function(){}
});
ja