摘要
jQuery對象: 具有jquery框架設置的所有功能的調用者, 就是該框架的對象 $又是什么?: $就是jQuery對象, jQuery對象為window的全局屬性, 所以可以直接使用 如何自定義jQuery對象: 如用 JQ 替換 jQuery | $ var JQ = jQuery.noConflict(); //這是jquery源碼中提供的方法 JQ('.box').html("<b>哈哈</b>");
jQuery(selector,context)
簡要的說是:接收一個css選擇器表達式(selector)和可選的選擇器上下文(context),返回一個包含了匹配的DOM元素的jQuery對象
默認情況下,對匹配元素的查找都是從根元素ducument對象開始,也就是說查找范圍是整棵文檔樹。但是如果給定了上下文context,則在指定上下文中查找
html <span>body span</span> <span>body span</span> <span>body span</span> <div class="wrap"> <span>wrap span</span> <span>wrap span</span> <span>wrap span</span> </div> js $('span').css('background-color','red');//所有的span都會變紅 $('span','.wrap').css('background-color','red');//只有.wrap中的span會變紅
jQuery(html,ownerDocument) ,jQuery(html,props)
用所提供的html代碼創建DOM元素對於jQuery(html,ownerDocument),參數html可以是單標簽或者是多層標簽之間的嵌套。
第二個參數用於創建新DOM元素的文檔對象,如果不傳入則默認為當前的文檔對象
//單標簽 兩種方式都可以往body中插入div /* * 1 $('<div>').appendTo('body'); * 2 $('<div></div>').appendTo('body'); */ // 多標簽嵌套 $('<div><span>dfsg</span></div>').appendTo('body');
另外:對於單標簽,jQuery(html,props),props是一個包含屬性和事件的普通的對象,用法如下
$('<div>我是div</div>',{ title:'我是新的div', click:function(){ $(this).css('color','red'); console.log(this); } }).appendTo('body');
jQuery(element or elementsArray)
如果傳入一個DOM元素或者是DOM元素的數組,則把DOM元素封裝到jQuery對象中並返回。
html <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> js // 傳入DOM元素 $('li').each(function(index,ele){ $(ele).on('click',function(){ $(this).css('background','red');//這里的DOM元素就是this }) }) //傳入DOM數組 var aLi=document.getElementsByTagName('li'); aLi=[].slice.call(aLi);//集合轉數組 var $aLi=$(aLi); $aLi.html('我是jQuery對象');//所有的li的內容都變成'我是jQuery對象'
jQuery(object)
如果傳入的是一個object對象,則把該對象封裝到jQuery對象中並返回
var obj={name:'謙龍'}; var $obj=$(obj);//封裝成jQuery對象 //綁定自定義事件 $obj.on('say',function(){ console.log(this.name)//輸出謙龍 }); $obj.trigger('say');
jQuery(callback)
當傳進去的參數是函數的時候,則在document對象上綁定一個ready事件監聽函數,當DOM結構加載完成的時候執行
$(function(){ }) //以上代碼和下面的效果是一樣的 $(document).ready(function(){ ...//代碼 })
jQuery(jQuery object)
當傳進去的參數是一個jQuery對象的時候,則創建該jQuery對象的一個副本並返回。副本與傳入的jQuery對象引用完全相同的元素
var aLi=$('li'); var copyLi=$(aLi);//創建一個aLi的副本 console.log(aLi); console.log(copyLi); console.log(copyLi===aLi);
jQuery()
如果不傳入任何的參數,則返回一個空的jQuery對象,屬性length為0注意這個功能可以用來復用jQuery對象,
例如可以創建一個空的jQuery對象,然后在需要的時候先手動修改其中的元素,然后在調用jQuery方法。從而避免重復創建jQuery對象