after
更新日: 2018-09-11
.addClass(html, [elements])
マッチした要素の後ろに兄弟要素としてHTML要素を追加します。
.after(html)
.after('<div>')
.after(u('<div>'))
.after(u('<div>').first()) // document.createElement('div')と同等です。
.after(u('<div></div><div></div>'))
.after(function(){})
.after(function(el){}, elements)
.after(function(el){}, 10)
パラメータ
- html: 下記参照
- 以下のいずれかの要素。
- string : 挿入されるHTML。
- instance : Umbrellaのインスタンス。
- HTML node
- array : HTML nodeの配列。
- 上記のいずれかを返すコールバック。以下のパラメータが渡されます。
- el :
elements
パラメータの現在の要素。指定されていない場合は{}
、数値の場合はi
。 - i : 現在の要素のインデックス。
- el :
- 以下のいずれかの要素。
- elements: 下記参照
html
パラメータにコールバックを指定した場合に有効です。 以下のいずれかになります。オプションです。- コールバックに渡される要素の配列。 コールバックは要素ごとに1回ずつ処理され、全て連続で追加されます。
- CSSセレクタ。 マッチした要素ごとに1回ずつ実行されます。
- 数値。 関数は指定した数値の数だけ実行されます。
戻り値
- u
- Umbrellaのインスタンスを返します。
例
各メインタイトルh1
の下に、hr
を追加します。
u('h1').after('<hr>');
リンクの後に3つの要素を追加します。 以下の例は全て同じ動作になります。
// 1つの文字列で全てを追加。
u('a.main').after('<a>One</a><a>Two</a><a>Three</a>');
// メソッドチェーンで追加。
u('a.main').after('<a>Three</a>').after('<a>Two</a>').after('<a>One</a>');
// functionを使って追加。
var cb = function(txt){ return '<a>' + txt + '</a>' };
u('a.main').after(cb, ['One', 'Two', 'Three']);
// ES6の記述で追加。
u('a.main').after(txt => `<a>${ txt }</a>`, ['One', 'Two', 'Three']);
結果は以下になります。
<!-- previous data -->
<a class="main"></a>
<a>One</a>
<a>Two</a>
<a>Three</a>
HTMLノードを作成して、イベントを追加することもできます。
function greeting(){ alert('Hello world'); }
u('a.main').after(function(){
return u('<a>').addClass('hi').on('click', greeting).html('Greetings!');
});
デモ
"デモ用文字列"をクリックすると、 "デモ用文字列"の下に、"One"、"Two"、"Three"の文字を追加されます。
デモ用文字列JavaScript
u('#demo').on('click', function() {
var cb = function(txt){ return '<div>' + txt + '</div>' };
u(this).after(cb, ['One', 'Two', 'Three']);
});
HTML
<span id="demo">デモ用文字列</span>
関連項目
.before()
マッチした要素の前に兄弟要素としてHTML要素を追加します。
.append()
マッチした要素の子要素として、HTML要素を末尾に追加します。
.prepend()
マッチした要素の子要素として、HTML要素を先頭に追加します。
© 2014 Francisco Presencia Released under the MIT license
このコンテンツはFrancisco Presencia(franciscop)によるUmbrella JSドキュメントを翻訳/改変したものです。