JQuery中.add()的API應(yīng)用

1、.add()

描述:添加元素到匹配的元素集合。
.add( selector )
  • selector
    類型: [Selector]:一個(gè)字符串表示的選擇器表達(dá)式,找到更多的元素添加到匹配的元素集合。
.add( elements )
  • elements
    類型: [Elements]:一個(gè)或多個(gè)元素添加到匹配的元素集合。
.add(html)
  • html
    類型: [HTML]:HTML片段添加到匹配的元素集合。
.add(jQuery object)
  • jQuery object
    類型: [jQuery object]:一個(gè)現(xiàn)有的jQuery對(duì)象添加到匹配的元素集合。
.add(selector,context)
  • selector
    類型: [Selector]:一個(gè)字符串表示的選擇器表達(dá)式,找到更多的元素添加到匹配的元素集合。
  • context
    類型: [Element]: 指定選擇器查找元素所在的上下文; 類似$(selector, context)方法的context(上下文)參數(shù)。

鑒于一個(gè)jQuery對(duì)象,表示一個(gè)DOM元素的集合,.add()方法通過傳遞這些元素組合到該方法構(gòu)造一個(gè)新的jQuery對(duì)象。.add()的參數(shù)可以幾乎接受任何的$(),包括一個(gè)jQuery選擇器表達(dá)式,DOM元素,或HTML片段引用。

不要假設(shè)此方法會(huì)按照傳遞給.add()方法的參數(shù)的順序添加到已經(jīng)存在的集合中。如果所有元素都屬于同一個(gè)文檔,.add()方法所返回的集合將會(huì)按照元素在文檔中出現(xiàn)的位置進(jìn)行排序;也就是說,按照每個(gè)元素在文檔中出現(xiàn)的順序。如果集合中包含不同文檔或不屬于任何文檔的元素,最后的排序方式未定義(undefined)。為了創(chuàng)建一個(gè)包含已定義順序順序的jQuery對(duì)象,請(qǐng)使用$(array_of_DOM_elements)

他更新的元素集合,可以使用以下面的鏈?zhǔn)秸{(diào)用,或分配給一個(gè)變量供以后使用。例如:

$("p").add("div").addClass("widget");
var pdiv = $("p").add("div");

下面將不會(huì)保存添加的元素,因?yàn)樵?code>.add()方法創(chuàng)建一個(gè)新集合,并保持原集合PDIV不變:

var pdiv = $("p");
pdiv.add("div");  // WRONG, pdiv will not change

考慮一個(gè)面頁中簡(jiǎn)單的列表和它之后的段落:

<ul>
 <li>list item 1</li>
 <li>list item 2</li>
 <li>list item 3</li>
</ul>
<p>a paragraph</p>

我們可以選擇列表,然后通過使用一個(gè)選擇器或引用的DOM元素本身作為.add()方法的參數(shù),將段落添加到列表中:

$('li').add('p').css('background-color', 'red');

或者:

$('li').add(document.getElementsByTagName('p')[0])
.css('background-color', 'red');

該調(diào)用的結(jié)果是四個(gè)元素的紅色背景。使用片一個(gè)HTML段作為 .add()方法的參數(shù)(如在第三個(gè)版本),我們可以在動(dòng)態(tài)的創(chuàng)建額外的元素,添加這些元素到匹配的元素集合中。例如,我們可以改變新創(chuàng)建的段落和列表項(xiàng)的背景:

$('li').add('<p id="new">new paragraph</p>')
.css('background-color', 'red');

雖然已經(jīng)創(chuàng)建新的段落,并且改變其背景顏色,但是它仍然沒有出現(xiàn)在頁面上。要想在頁面上顯示該段落,我們需要在鏈?zhǔn)椒绞街惺褂?jQuery 的插入方法。

在jQuery 1.4結(jié)果從.add()將總是返回文檔順序(而不是一個(gè)簡(jiǎn)單的串聯(lián))。

注意: 要使用.add()相反的方法, 您可以使用.not( elements | selector )從jQuery返回中移除元素, 或使用.end()返回到添加之前的選擇(集合)。

例子:

Example: 查找所有的 div,并且添加一個(gè)邊框。然后將所有的段落添加到 jQuery 對(duì)象中,并將它們的背景色變成黃色。

<!DOCTYPE html>
<html>
<head>
  <style>
div { width:60px; height:60px; margin:10px; float:left; }

 p { clear:left; font-weight:bold; font-size:16px;

 color:blue; margin:0 10px; padding:2px; }

 </style>

 <script src="https://code.jquery.com/jquery-latest.js"></script>

</head>

<body>

 <div></div>

 <div></div>

 <div></div>

 <div></div>
 <div></div>

 <div></div>

 <p>Added this... (notice no border)</p>

<script>

$("div").css("border", "2px solid red")

 .add("p")

 .css("background", "yellow");

</script>

</body>

</html>

Demo:

image.png

Example: 根據(jù)給定的表達(dá)式,向匹配的元素集合中添加一些元素。

<!DOCTYPE html>

<html>

<head>

 <script src="https://code.jquery.com/jquery-latest.js"></script>

</head>

<body>

 <p>Hello</p><span>Hello Again</span>

<script>$("p").add("span").css("background", "yellow");</script>

</body>

</html>

Demo:

image.png

Example: 動(dòng)態(tài)的向匹配的元素集合中添加一些元素。


<!DOCTYPE html>

<html>

<head>

 <script src="https://code.jquery.com/jquery-latest.js"></script>

</head>

<body>

 <p>Hello</p>

<script>$("p").clone().add("<span>Again</span>").appendTo(document.body);</script>

</body>

</html>

Demo:

image.png

Example: 向匹配的元素集合中添加一些元素對(duì)象。

<!DOCTYPE html>

<html>

<head>

 <script src="https://code.jquery.com/jquery-latest.js"></script>

</head>

<body>

 <p>Hello</p><span id="a">Hello Again</span>

<script>$("p").add(document.getElementById("a")).css("background", "yellow");</script>

</body>

</html>

Demo:

image.png

Example: 以下示例展示了如何向一個(gè)已經(jīng)存在的集合中添加元素。

<!DOCTYPE html>

<html>

<head>

 <script src="https://code.jquery.com/jquery-latest.js"></script>

</head>

<body>

 <p>Hello</p><span id="a">Hello Again</span>

<script>var collection = $("p");

// capture the new collection

collection = collection.add(document.getElementById("a"));

collection.css("background", "yellow");</script>

</body>

</html>

Demo:

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問題本身并不復(fù)雜,可人的大腦卻復(fù)雜的很,它有想象力,有經(jīng)驗(yàn)判斷,會(huì)夾雜自己的感情,會(huì)因?yàn)楦星榈纳疃取㈥P(guān)系的復(fù)雜度,...
    Air糖閱讀 437評(píng)論 0 0
  • 里仁22 子曰:“古者言之不出,恥躬之不逮也?!?夫子說:古代人不隨便說話,以自己做不到為恥辱。
    陳尚軍閱讀 316評(píng)論 0 1
  • 我已經(jīng)叫復(fù)活節(jié)兔子給你捎個(gè)“蛋”,希望它到達(dá)時(shí)不會(huì)看到你已經(jīng)慵懶而死了! 我喜歡扉頁上有題簽、頁邊寫滿注記的舊書;...
    楠說閱讀 1,065評(píng)論 0 0
  • 本Git系列內(nèi)容更多是基于廖雪峰老師的Git教程的個(gè)人筆記、總結(jié)和擴(kuò)展,如有錯(cuò)誤,請(qǐng)多多指正。 在版本操作中我們已...
    孤宆閱讀 302評(píng)論 0 0

友情鏈接更多精彩內(nèi)容