jQueryには.after()
メソッドがあり、メソッドもあり.insertAfter()
ます。
それらの違いは何ですか?.after()
選択した要素の後に要素を挿入するために使用できると思います。そうですか?何の.insertAfter()
ために?
jQueryには.after()
メソッドがあり、メソッドもあり.insertAfter()
ます。
それらの違いは何ですか?.after()
選択した要素の後に要素を挿入するために使用できると思います。そうですか?何の.insertAfter()
ために?
それらは相互に反対です。
' after 'は、セレクターの後に引数を挿入します。
' insertAfter 'は、引数の後にセレクターを挿入します。
これは、同じことを行った例です。
<div class="container"> <h2>Greetings</h2> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div> $( "<p>Test</p>" ).insertAfter( ".inner" ); Each inner <div> element gets this new content: <div class="container"> <h2>Greetings</h2> <div class="inner">Hello</div> <p>Test</p> <div class="inner">Goodbye</div> <p>Test</p> </div>
<div class="container"> <h2>Greetings</h2> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div> $( ".inner" ).after( "<p>Test</p>" ); <div class="container"> <h2>Greetings</h2> <div class="inner">Hello</div> <p>Test</p> <div class="inner">Goodbye</div> <p>Test</p> </div>
それらは互いに逆です。jQueryのドキュメントで説明されているように:
これ:
$("p").insertAfter("#foo");
これと同じです:
$("#foo").after("p");
そして最後に、insertAfterは挿入されたすべての要素を返しますが、.after()は呼び出されたコンテキストを返します。
これまでの答えはすべて泥のようにはっきりしています;-)(だから私もそれを突き刺します!)
このHTMLから始める場合:
<p id="pOne">Para 1</p>
<p id="pTwo">Para 2 <span id="sMore">More</span></p>
一致するタグの後にいくつかの新しいコンテンツを挿入した後:
$("p") // Match all paragraph tags
.after("<b>Hello</b>"); // Insert some new content after the matching tags
最終結果は次のとおりです。
<p id="pOne">Para 1</p><b>Hello</b>
<p id="pTwo">Para 2 <span id="sMore">More</span></p><b>Hello</b>
一方、InsertAfterは、選択した要素の後にDOMにすでに存在する1つ以上の要素を移動します(実際には、このメソッドはMoveAfterと呼ばれる可能性があります)。
$("#sMore") // Find the element with id `sMore`
.insertAfter("#pOne"); // Move it to paragraph one
その結果:
<p id="pOne">Para 1</p><span id="sMore">More</span>
<p id="pTwo">Para 2</p>
( 前後に ):
$('selector').after('new_content');
$('selector').before('new_content');
while(insertAfter&insertBefore):
$('new_content').insertAfter('selector');
$('new_content').insertBefore('selector');
$("p").insertAfter("#foo");
==
$("#foo").after("p")
after(content)戻り値:jQuery
一致した各要素の後にコンテンツを挿入します。
insertAfter(selector)戻り値:jQuery
一致したすべての要素を、指定された別の要素のセットの後に挿入します。
一部の構文とは別に重要なことの1つは、メモリリークとパフォーマンスです。大量のdom要素がある場合、insertafterはinsertよりも効率的です。したがって、afterではなくinsertafterを優先します。
また、挿入された要素の属性の受け渡しは「.insertAfter」では機能しないようですが、「。after」では機能します
作品:
$('#element').after('<p>Test</p>', { 'class': 'element_class', 'id': 'element_id' });
動作しません:
$('<p>Test</p>', { 'class': 'element_class', 'id': 'element_id' }).insertAfter('#element');
*編集:「。after」でも機能しないようですが、「。appendTo」でのみ機能します
ここでは、jQueryメソッドprepend()、prependTo()、append()、appendTo()、before()、insertBefore()、after()、insertAfterを使用してページにコンテンツを追加する方法の非常に優れたチュートリアルを見つけることができます()、wrap()、wrapAll()およびwrapInner()
After()とInsertafter()の両方が要素を追加しますが、チェーンに大きな変更が加えられます
セレクターの後にafter()
新しい要素を追加している場合、要素にチェーンを使用している場合は、使用した関数selector
は新しく追加された要素ではなくで起動し、逆にinsertAfter()
チェーンが実行されます。たとえば、新しく追加された要素。
After()およびInsertAfter()
HTML
<div class="after">After Div</div>
------------------------------------------------------
<div class="insertafter">Insert after div</div>
脚本
var p='<p>Lorem ipsum doner inut..</p>';
$('.after').after(p)//chaining, performed on .after div not on p
.css('backgroundColor','pink');
//you can chain more functions for .after here
$(p).insertAfter('.insertafter')//chaining, performed on p not on .insertafter div
.css('backgroundColor','yellow');
// here you can chain more functions for newly added element(p)
上記を参照してください。selector
とcontents
は両方の機能で変更されています。以下のリストにも同じことが当てはまります。
両方を確認したい場合は、パフォーマンスの面で、Seeafter-vs- insertafter -performanceafter()
よりも高速です。insertAfter()