如果您不知道id
,我怎样才能获得动态生成元素的id
属性?我想在页面上为大约2000个Checkbox设置一些eventListener
。
我知道我可以在元素中调用函数:
<input type="checkbox" id="{databaseResult.Value}" onclick="someFunction(this)" />
但我不允许在我的HTML中使用JavaScript或引用它。纯JavaScript(或编译它的语言)是我唯一的选择。
我做知道id
的一些元素的代码是:
var tb = <HTMLInputElement>document.getElementById("tbox");
if(tb.addEventListener("", function (e) {
sayHello(tb.value);
}, false));
答案 0 :(得分:2)
将一个侦听器放在祖先元素上,比如正文,然后监听事件,例如:
<body onclick="handleClick(event);" ...>
,功能是:
function handleClick(evt) {
var el = evt.target || evt.srcElement;
if (el && el.type == 'checkbox') {
alert(el.id);
}
}
当然你可以动态添加监听器,为方便起见我使用了内联。
要动态附加侦听器,请使用addEvent
函数来处理IE和W3C事件模型:
function addEvent(el, evt, fn) {
// W3C event model
if (el.addEventListener) {
el.addEventListener(evt, fn, false);
// IE event model
// Set this and pass event as first parameter
} else if (el.attachEvent) {
el.attachEvent('on' + evt, (function(el, fn) {
return function() {fn.call(el, window.event);};
})(el, fn)
);
}
// Prevent circular reference
el = null;
}
并将其命名为:
window.onload = function() {
addEvent(document.body, 'click', handleClick);
}