jQuery編程中的一些核心方法簡介

來源:互聯網
上載者:User

標籤:auto   ini   cli   define   ora   lock   bsp   att   add   

調用 jQuery 對象的方法很簡單:

$(‘h1‘).remove();

大多數 jQuery 方法都是像上面這樣被調用的,這些方法都位於 $.fn 命名空間內,這些方法稱為 jQuery 對象方法。

但是也有一些方法不需要依賴於選取器的結果集,這些方法位於 jQuery 命名空間內,這些方法稱為 jQuery 核心方法。如果覺得不好理解,記住下面兩條即可:

  1.     所有 jQuery 選取器的方法都位於 $.fn 命名空間內。
  2.     $ 內的方法一般都是一些實用的功能性方法,這些方法不依賴選取器,這些方法的參數和傳回值也都大不相同。

有些對象方法跟核心方法的名稱還會相同,例如 $.fn.each 和 $.each,使用的時候需要格外注意。

jQuery 的 $ 命名空間中提供了很多實用方法:

$.trim(‘  lots of extra whitespace  ‘);

// 返回 ‘lots of extra whitespace‘

對數組和對象進行迭代:

$.each([ ‘foo‘, ‘bar‘, ‘baz‘ ], function(idx, val) {

  console.log(‘element ‘ + idx + ‘is ‘ + val);

});

 

$.each({ foo : ‘bar‘, baz : ‘bim‘ }, function(k, v) {

  console.log(k + ‘ : ‘ + v);

});

返回數組中某元素的索引,如果元素不存在則返回 -1

var myArray = [ 1, 2, 3, 5 ];

 

if ($.inArray(4, myArray) !== -1) {

  console.log(‘找到了‘);

 

}

用一個對象去擴充另外一個對象:

var firstObject = { foo : ‘bar‘, a : ‘b‘ };

var secondObject = { foo : ‘baz‘ };

 

var newObject = $.extend(firstObject, secondObject);

console.log(firstObject.foo); // ‘baz‘

 

console.log(newObject.foo);  // ‘baz‘

如果不想改變第一個對象中的值,在 $.extend 的第一個參數中傳入一個Null 物件即可:

var firstObject = { foo : ‘bar‘, a : ‘b‘ };

var secondObject = { foo : ‘baz‘ };

 

var newObject = $.extend({}, firstObject, secondObject);

console.log(firstObject.foo); // ‘bar‘

 

console.log(newObject.foo);  // ‘baz‘

改變函數的範圍:

var myFunction = function() { console.log(this); };

var myObject = { foo : ‘bar‘ };

 

myFunction(); // logs window object

 

var myProxyFunction = $.proxy(myFunction, myObject);

 

myProxyFunction(); // logs myObject object

再結合事件看如何改變函數的範圍:

var myObject = {

  myFn : function() {

    console.log(this);

  }

};

 

$(‘#foo‘).click(myObject.myFn); // logs DOM element #foo

 

$(‘#foo‘).click($.proxy(myObject, ‘myFn‘)); // logs myObject

JavaScript 本身有類型檢測的方法,jQuery 中也有,並且做得更好:

var myValue = [1, 2, 3];

 

// 用 JavaScript 的 typeof 操作符來判斷類型

typeof myValue == ‘string‘; // false

typeof myValue == ‘number‘; // false

typeof myValue == ‘undefined‘; // false

typeof myValue == ‘boolean‘; // false

 

// 用恒等於 檢測 null

myValue === null; // false

 

// 使用 jQuery 的方法來判斷類型

jQuery.isFunction(myValue); // false

jQuery.isPlainObject(myValue); // false

 

jQuery.isArray(myValue); // true

向 HTML 元素添加額外的資料:

$(‘#myDiv‘).data(‘keyName‘, { foo : ‘bar‘ });

 

$(‘#myDiv‘).data(‘keyName‘); // { foo : ‘bar‘ }

所要添加的資料可以是任意類型:

$(‘#myList li‘).each(function() {

  var $li = $(this), $div = $li.find(‘div.content‘);

  $li.data(‘contentDiv‘, $div);

});

 

// 不需要再去找那些 div 了;

// 可以直接從 list 中讀取出來

var $firstLi = $(‘#myList li:first‘);

 

$firstLi.data(‘contentDiv‘).html(‘new content‘);

 

調用 jQuery 對象的方法很簡單:

?
1 $(‘h1‘).remove();

大多數 jQuery 方法都是像上面這樣被調用的,這些方法都位於 $.fn 命名空間內,這些方法稱為 jQuery 對象方法。

但是也有一些方法不需要依賴於選取器的結果集,這些方法位於 jQuery 命名空間內,這些方法稱為 jQuery 核心方法。如果覺得不好理解,記住下面兩條即可:

  1.     所有 jQuery 選取器的方法都位於 $.fn 命名空間內。
  2.     $ 內的方法一般都是一些實用的功能性方法,這些方法不依賴選取器,這些方法的參數和傳回值也都大不相同。

jQuery編程中的一些核心方法簡介

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.