1

id当您不知道动态生成的元素的属性时,如何获取它id?我想eventListener在一个页面上为大约 2000 个复选框设置一些 s。

我知道我可以从元素中调用一个函数:

<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));
4

1 回答 1

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);
}
于 2012-10-30T06:19:58.530 回答