javascriptでforループを実行しようとしています。ここでは、ループ/リスト内のすべての要素に対してonChange関数を配置しています。onChangeがトリガーされると、setValidation関数は正しいパラメーターでトリガーする必要があります。
私は今のところ次のコードを試しています
var allConditions = document.getElementsByClassName("condition-container");
for (let i = 0; i < allConditions.length; i++)
{
document.getElementById("PropertyPre" + i).onchange = function ()
{
setValidation(false, i);
}
};
function setValidation(firstTime, elementNumber)
{
console.log("This is number: " + elementNumber);
}
HTML要素で何かを変更したときの実際の出力PropertyPre0
は次のとおりですThis is number 2
が、実際にはを返すはずThis is number 0
です。
コードを修正する方法を知っている人はいますか?
クラス「condition-container」とID「PropertPre」+ iの3つのdiv要素があると仮定しました(クラスuの数によって異なります)
var allConditions = document.getElementsByClassName("condition-container");
for (let i = 0; i < allConditions.length; i++)
{
document.getElementById("PropertyPre" + i).onchange = function ()
{
return setValidation(false, i);
};
};
function setValidation(firstTime, elementNumber)
{
console.log("This is number: " + elementNumber);
}
<div class="condition-container">
<div class="condition-container">
<div class="condition-container">
<input id="PropertyPre0">
<input id="PropertyPre1">
<input id="PropertyPre2">
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加