をエラーはどこか、それは利用できませんから、変数dynamicID
にアクセスしようとによって引き起こされます。
JSの変数は、それらを定義する関数、つまりvar something = 'value'
を書く部分でのみアクセスできます。
あなたの例では、変数dynamicID
はこの関数内のどこでも利用できますが、その外にはありません。
$(document).on('click', '.addvideo', function() {
var dynamicID = $(this).attr('id');
});
console.log(dynamicID) //ReferenceError: dynamicID is not defined
あなたはそれが基本的に存在しないので、あなたは、エラーになります関数の外dynamicID
にアクセスしてみてください。
だから、あなたが定義する関数の内部でdynamicID
を使用している機能を移動することができ、それ:
$(document).on('click', '.addvideo', function() {
var dynamicID = $(this).attr('id');
$('#'+dynamicID).change(function(){
alert('hi');
});
});
それとも、関数外で定義することができますどこか他の変数にアクセスするためには、それを中に値を代入しますそれから他の場所からアクセスしてください。
var dynamicID;
$(document).on('click', '.addvideo', function() {
dynamicID = $(this).attr('id');
});
console.log(dynamicID) //this will log the ID value provided the element has been clicked
それはあなたが問題に実行している理由である、完全に異なるスコープにあります。私が持っている質問は、なぜあなたはすでに持っている要素を再選択したいのですか?あなたは単にDOMノードへの参照を格納することができ、まったく再選択する必要はありません。 – zzzzBov