jQuery 動畫和ajax

1. jQuery 中, $(document).ready()是什么意思?

為了防止文檔在完全加載(就緒)之前運行jQuery代碼,如果在文檔沒有加載之前就運行函數(shù),可能操作失敗。必須在文檔加載完成后再執(zhí)行操作,可使用ready事件,作用相當于把js寫到body的末尾。

$(document).ready(function() {
   //do something
})

$().ready(function() {
   //do something
})

$(function() {
   //do something
})

2. $node.html()和$node.text()的區(qū)別?

$node.html(),返回所選擇元素內的html內容,包含html標簽和文本內容
$node.text(),返回所選擇元素內的文本內容,不包含html標簽,只包含文本內容

3. $.extend 的作用和用法?

$.extend方法用于將多個對象合并進第一個對象。

var o1 = {p1:'a',p2:'b'};
var o2 = {p1:'c'};

$.extend(o1,o2);
o1.p1 // "c"  

$.extend的另一種用法是生成一個新對象,用來繼承原有對象。這時,它的第一個參數(shù)應該是一個空對象。

var o1 = {p1:'a',p2:'b'};
var o2 = {p1:'c'};

var o = $.extend({},o1,o2);
o
// Object {p1: "c", p2: "b"}

默認情況下,extend方法生成的對象是“淺拷貝”,也就是說,如果某個屬性是對象或數(shù)組,那么只會生成指向這個對象或數(shù)組的指針,而不會復制值。如果想要“深拷貝”,可以在extend方法的第一個參數(shù)傳入布爾值true。

var o1 = {p1:['a','b']};

var o2 = $.extend({},o1);
var o3 = $.extend(true,{},o1);

o1.p1[0]='c';

o2.p1 // ["c", "b"]
o3.p1 // ["a", "b"]

4. jQuery 的鏈式調用是什么?

使用jQuery方法時對象方法返回的是對象本身,可以繼續(xù)調用此對象的其他方法,實現(xiàn)連續(xù)調用多個方法。

$('#btn').on('click', function() {
    $('.main').fadeIn('slow').animate({height: '100px'}, 500);
})

5. jQuery 中 data 函數(shù)的作用

類似于html5中的data-屬性,用來方便用戶給標簽綁定數(shù)據(jù),jquery的data函數(shù)用于在當前jquery對象所匹配的所有元素上存取數(shù)據(jù),data()函數(shù)存取的數(shù)據(jù)都是臨時數(shù)據(jù),一旦頁面刷新,之前存放的數(shù)據(jù)都將不復存在。如果需要移除用removeData()方法。用法:可以傳入兩個參數(shù),分別是key和value,或者傳入一個object。需要注意是當讀取數(shù)據(jù)時只以第一個匹配元素為準。

6. 寫出以下功能對應的 jQuery 方法:

1.給元素 $node 添加 class active,給元素 $noed 刪除 class active

$node.addClass('active');//添加
$node.removeClass('active');//刪除

2.展示元素$node, 隱藏元素$node

$node.show();
$node.hide();

3.獲取元素$node 的 屬性: id、src、title, 修改以上屬性

// 獲得
$node.attr('id');
$node.attr('src');
$node.attr('title');
// 修改
$node.attr('id', 'wrap');
$node.attr('src', 'https://github.com');
$node.attr('title', 'welcome');

4.給$node 添加自定義屬性data-src

$node.attr('data-src', wrap);

5.在$ct 內部最開頭添加元素$node

$ct.prepend($node);

6.在$ct 內部最末尾添加元素$node

$ct.append($node);

7.刪除$node

$node.remove()

8.把$ct里內容清空

$ct.empty();

9.在$ct 里設置 html <div class="btn"></div>

$ct.html('<div class="btn"></div>')

10.獲取、設置$node 的寬度、高度(分別不包括內邊距、包括內邊距、包括邊框、包括外邊距)

$node.width(); // content
$node.height(); // content
$node.innerWidth(); // content+padding
$node.innerHeight(); // content+padding
$node.outWidth(); // content+padding+border
$node.outHeight(); // content+padding+border
$node.outWidth(true); // content+padding+border+margin
$node.outHeight(true); // content+padding+border+margin

11.獲取窗口滾動條垂直滾動距離

$(window).scrollTop();

12.獲取$node 到根節(jié)點水平、垂直偏移距離

$node.offset();

13.修改$node 的樣式,字體顏色設置紅色,字體大小設置14px

$node.css({'color': 'red'; 'font-size': '14px'})

14.遍歷節(jié)點,把每個節(jié)點里面的文本內容重復一遍

$.each(function () {
    console.log($(this).text());
})

15.從$ct 里查找 class 為 .item的子元素

$ct.find('.item');

16.獲取$ct 里面的所有孩子

$ct.children();

17.對于$node,向上找到 class 為'.ct'的父親,在從該父親找到'.panel'的孩子

$node.parent('.ct').find('.panel');

18.獲取選擇元素的數(shù)量

$node.length;

19.獲取當前元素在兄弟中的排行

$(this).index();
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容