for循环传递参数中的多个onchange效果

Multiple onchange effects in a for loop passing parameter

我正在尝试在 javascript 中执行 for 循环,我在其中为 loop/list 中的每个元素放置了一个 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,但实际上应该 return This is number 0

有没有人知道如何修复代码?

我假设你有 3 个 div 元素 class "condition-container" 和 id "PropertPre" + i(取决于你有多少 class)

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">