當前jQuery對象可能是通過調用其它jQuery對象的特定方法創建的,使用該函數將返回一個新的jQuery對象,該對象包含了當前jQuery對象和之前創建它的jQuery對象的所有匹配元素。
你還可以使用選擇器進一步縮小添加范圍,只添加之前的jQuery對象中符合指定選擇器的元素。
該函數屬于jQuery對象(實例)。
語法
jQuery 1.8 新增該函數。andSelf()函數是該函數的別名(從1.8開始,andSelf()函數已過時)。
jQueryObject.addBack( [ selector ] )
參數
參數
描述
selector 可選/String類型指定的選擇器字符串。
如果省略selector參數,則添加之前jQuery對象的所有匹配元素。
返回值
addBack()函數的返回值為jQuery類型,返回一個新的jQuery對象,該對象包含了當前jQuery對象的所有匹配元素以及創建當前jQuery對象的jQuery對象的匹配元素中符合指定選擇器的元素。
如果沒有匹配的元素,則返回空的jQuery對象。
從jQuery 1.8開始,andSelf()函數是該函數的別名。
細節說明:當一個jQuery對象被創建時,其內部有一個屬性(prevObject)會保存創建它的jQuery對象的引用。調用addBack()函數時,當前jQuery和創建它的jQuery對象會通過add()函數連接起來,并返回一個新的jQuery對象。
示例&說明
以下面這段HTML代碼為例:
<p id="n1"> <span id="n2"> <span id="n3">A</span> </span> <label id="n4">B</label> <span id="n5"> <span id="n6">C</span> </span> <strong id="n7" class="active">D</strong> <span id="n8" class="active">E</span> </p> <p id="n9"> <span id="n10"></span> <label id="n11"></label> <span id="n12" class="active"></span> </p>
以下jQuery示例代碼用于演示addBack()函數的具體用法:
//返回jQuery對象所有匹配元素的標識信息數組 //每個元素形如:#id function getTagsInfo($doms){ return $doms.map(function(){ return "#" + this.id; }).get(); } //匹配所有的p元素 var $p = $("p"); //選取所有p元素的后代label元素 var $label = $p.find("label"); //由于jQuery對象$label是通過$p的特定方法創建,使用addBack()將返回一個新的jQuery對象 //該對象所匹配的元素是$p和$label兩者的匹配元素之和 var $pAndLabel = $label.addBack(); document.writeln( getTagsInfo( $pAndLabel ) ); // #n1,#n4,#n9,#n11 // 所有包含類名"active"的元素的上一個緊鄰的同輩元素(#) // 再加上所有包含類名"active"的元素中的span元素 var $elements = $(".active").prev().addBack("span"); document.writeln( getTagsInfo( $elements ) ); // #n5,#n7,#n8,#n11,#n12 //addBack()之前有3個jQuery對象: //第1個:$("p") //第2個:$("p").find("strong") //第3個:$("p").find("strong").siblings(".active") //調用addBack()的是第3個對象,創建該對象的是第2個對象 //因此addBack()返回包含第3個對象和第2個對象的匹配元素之和的jQuery對象 var $matches = $("p").find("strong").siblings(".active").addBack(); document.writeln( getTagsInfo( $matches ) ); // #n7,#n8
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com