用法
.after( content [, content ] ) => jQuery
.after( content [, content ] ) => jQuery
說明:在匹配元素集中的每個元素之後插入由參數指定的內容。
-
添加的版本:1.0
.after( content [, content ] )
-
content類型:htmlString 或 Element 或 Text 或 Array 或 jQueryHTML 字符串、DOM 元素、文本節點、元素數組和文本節點,或要插入到匹配元素集中的每個元素之後的 jQuery 對象。
-
content類型:htmlString 或 Element 或 Text 或 Array 或 jQuery一個或多個附加 DOM 元素、文本節點、元素數組和文本節點、HTML 字符串或 jQuery 對象,以插入到匹配元素集中的每個元素之後。
-
-
添加的版本:1.4
.after( function )
-
function一個返回 HTML 字符串、DOM 元素、文本節點或 jQuery 對象的函數,以插入到匹配元素集中的每個元素之後。接收集合中元素的索引位置作為參數。在函數中,
this
指的是集合中的當前元素。
-
-
添加的版本:1.10
.after( function-html )
-
function-html一個返回 HTML 字符串、DOM 元素、文本節點或 jQuery 對象的函數,以插入到匹配元素集中的每個元素之後。接收集合中元素的索引位置和元素的舊 HTML 值作為參數。在函數中,
this
指的是集合中的當前元素。
-
.after()
和 .insertAfter()
方法執行相同的任務。主要區別在於語法——特別是內容和目標的位置。使用 .after()
,要插入的內容來自方法的參數:$(target).after(contentToBeInserted)
。另一方麵,使用 .insertAfter()
時,內容在方法之前並插入到目標之後,而目標又作為 .insertAfter()
方法的參數傳遞:$(contentToBeInserted).insertAfter(target)
。
使用以下 HTML:
|
可以創建內容,然後一次插入多個元素之後:
|
每個內部 <div>
元素都會獲得以下新內容:
|
也可以選擇 DOM 中的一個元素並將其插入到另一個元素之後:
|
如果以這種方式選擇的元素被插入到 DOM 中其他位置的單個位置,它將被移動而不是克隆:
|
重要提示:但是,如果有多個目標元素,則將為每個目標創建插入元素的克隆副本,最後一個除外。
傳遞函數
從 jQuery 1.4 開始,.after()
支持傳遞返回要插入的元素的函數。
|
此示例在每個段落之後插入 <div>
,每個新的 <div>
都包含其前一段的類名。
附加參數
與 .prepend()
和 .before()
等其他內容添加方法類似,.after()
也支持傳入多個參數作為輸入。支持的輸入包括 DOM 元素、jQuery 對象、HTML 字符串和 DOM 元素數組。
例如,以下將在第一段之後插入兩個新的 <div>
和一個現有的 <div>
:
|
由於 .after()
可以接受任意數量的附加參數,因此可以通過將三個 <div>
作為三個單獨的參數傳入來實現相同的結果,如下所示: $( "p" ).first().after( $newdiv1, newdiv2, existingdiv1 )
。參數的類型和數量在很大程度上取決於代碼中收集的元素。
其他注意事項:
- 在 jQuery 1.9 之前,如果集合中的第一個節點未連接到文檔,
.after()
將嘗試在當前 jQuery 集合中添加或更改節點,並且在這些情況下返回一個新的 jQuery 集合而不是原始集合。該方法可能會或可能不會返回新結果,具體取決於其參數的數量或連接性!從 jQuery 1.9 開始,.after()
、.before()
和.replaceWith()
總是返回原始的未修改集。嘗試在沒有父節點的節點上使用這些方法沒有任何效果——也就是說,集合和它包含的節點都不會改變。 - 根據設計,任何接受 HTML 字符串的 jQuery 構造函數或方法(jQuery()、.append()、.after() 等)都可能執行代碼。這可以通過注入腳本標簽或使用執行代碼的 HTML 屬性(例如,
<img onload="">
)來實現。不要使用這些方法插入從 URL 查詢參數、cookie 或表單輸入等不受信任的來源獲得的字符串。這樣做會引入cross-site-scripting (XSS) 漏洞。在向文檔添加內容之前刪除或轉義任何用戶輸入。
例子:
在所有段落之後插入一些 HTML。
|
演示:
在所有段落之後插入一個 DOM 元素。
|
演示:
在所有段落之後插入一個 jQuery 對象(類似於 DOM 元素數組)。
|
演示:
相關用法
- JQuery .add()用法及代碼示例
- JQuery UI .addClass()用法及代碼示例
- JQuery .addClass()用法及代碼示例
- JQuery .addBack()用法及代碼示例
- JQuery .ajaxSend()用法及代碼示例
- JQuery .ajaxStop()用法及代碼示例
- JQuery .ajaxComplete()用法及代碼示例
- JQuery .animate()用法及代碼示例
- JQuery .attr()用法及代碼示例
- JQuery .ajaxSuccess()用法及代碼示例
- JQuery .ajaxError()用法及代碼示例
- JQuery .append()用法及代碼示例
- JQuery .appendTo()用法及代碼示例
- JQuery .ajaxStart()用法及代碼示例
- JQuery .jquery用法及代碼示例
- JQuery .scroll()用法及代碼示例
- JQuery .contextmenu()用法及代碼示例
- JQuery .undelegate()用法及代碼示例
- JQuery .load()用法及代碼示例
- JQuery .contents()用法及代碼示例
- JQuery .empty()用法及代碼示例
- JQuery UI .labels()用法及代碼示例
- JQuery .click()用法及代碼示例
- JQuery UI .toggleClass()用法及代碼示例
- JQuery .removeAttr()用法及代碼示例
注:本文由純淨天空篩選整理自jquery.com大神的英文原創作品 .after()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。