我有一个动态生成的html,它有多个输入元素,有一个像这样的onchange函数:onchange=adStGroup();
。在我的HTML中,我创建了一个像这样的javascript函数:
function adStGroup(jsObj){
console.log(jsObj.name);
}
如果我转到开发人员工具,请将函数更改为:onchange=adStGroup(this);
并在input元素中进行一些更改,将记录元素的名称。
但是由于动态html不包含this参数,因此,在window onload
上,我将删除默认的onchange并添加另一个onchange,如下所示:
for(var i=0;i<document.getElementById("f5erz").getElementsByTagName('input').length;i++){
document.getElementById("f5erz").getElementsByTagName('input')[i].removeAttribute('onchange');
document.getElementById("f5erz").getElementsByTagName('input')[i].setAttribute('onchange','javascript:adStGroup(this);');
}
现在动态生成的html输入元素包含this
参数,但是如果我对输入元素进行任何更改,则不会调用相应的方法。 为什么这样?
如何将此引用传递给此类动态生成的输入元素?
注意:我使用模拟为5的IE文档模式,因为该应用仅适用于此版本。