2016-05-19 6 views
0

私は<select>を動的に作成しています。それに変更イベントをバインドするために、私は次のコードを使用しています:動的に作成された要素の特定のセレクタへの参照を取得します。

$(document).on('change', $('select[name^="time_types"]'), function() { 
    // do something 
} 

を私は兄弟に、いくつかのテキストを追加するために、この特定の<select>要素への参照を取得する必要があります。例えば

$(document).on('change', $('select[name^="time_types"]'), function() { 
    $('select[name^="time_types"]').siblings('.mileageInfo').append('Some text.'); 
} 

明らかにこれが追加されます "いくつかのテキストを。"ページ上の各「<select>」要素の末尾に、「time_types」で始まる名前が付いています。これは私が望むものではありません。

上記の$(document).on()関数に渡される特定の<select>への参照を取得して、その要素にのみテキストを追加できるようにするにはどうすればよいですか?

+1

jQueryでは、イベントハンドラはイベントを発生させた要素にスコープを設定します。そのため、 'this'キーワードを使用して要素を参照できます。 'select'要素には' option'や 'optgroup'要素しか含めることができないので、プレーンテキストを追加するといくつかの問題が発生することに注意してください。 –

答えて

0

私は私だけ その要素にテキストを追加できるように、上記 に$(文書).on()関数に渡され、特定の参照を取得できますか?単に

$(this).siblings('.mileageInfo').append('Some text.'); 

$(this)

$('select[name^="time_types"]').siblings('.mileageInfo').append('Some text.'); 

を交換

は、現在の選択ボックスを参照します。

ところで、onメソッドはjquery要素をとらない。代わりに、セレクタ文字列を受け取ります。

$(document).on('change', 'select[name^="time_types"]', function() { 
    $(this).siblings('.mileageInfo').append('Some text.'); 
} 
+0

$(これ)は、選択ボックスではなく、ドキュメントへの参照を取得しているようです。 私の間違い。私は実際に選択の兄弟に追加するのではなく、選択自体を追加しています。私はそれを反映するために私の質問を更新しました。 – markusmayhem

+0

@markusmayhem更新された答えを確認 – gurvinder372

+0

@markusmayhemはあなたのために働いたのですか? – gurvinder372

関連する問題