多个元素上的JavaScript onChange()
是否可以将相同的onChange()分配给多个元素(无jQuery) 现在我正在做什么多个元素上的JavaScript onChange(),javascript,onchange,Javascript,Onchange,是否可以将相同的onChange()分配给多个元素(无jQuery) 现在我正在做什么 var namefirst = document.getElementsByName("attribute.Identifier Source")[0]; namefirst.onchange = function () {//disable some stuff } 但是,我必须对另外5个元素执行onChange(),因此我想知道是否可以同时对所有元素执行此操作?或者我必须对每个元素都这样做 (我对Jav
var namefirst = document.getElementsByName("attribute.Identifier Source")[0];
namefirst.onchange = function () {//disable some stuff }
但是,我必须对另外5个元素执行onChange(),因此我想知道是否可以同时对所有元素执行此操作?或者我必须对每个元素都这样做
(我对Javascript非常陌生)一种方法是使用如下循环:
for(i=0; i<var.length; i++){
//do stuff
}
for(i=0;i关于:
var names = document.getElementsByName("attribute.Identifier Source");
for (var i = 0; i < names.length; i++) {
names[i].onchange = function() {
//do stuff
}
}
var name=document.getElementsByName(“attribute.Identifier-Source”);
对于(var i=0;i
如果要立即绑定它,请尝试使用事件委派。即,为输入创建一个包装,并将更改事件绑定到它,然后根据事件目标检测元素并执行操作
大概是这样的:
for(i=0; i<var.length; i++){
//do stuff
}
HTML:
因此,这里输入上的更改事件冒泡到其父级,在那里您捕获它并执行您的操作
显然,您可以在元素上循环,并在循环中分配处理程序:
function onChangeHandler() {
// do some stuff
}
var myCollection = document.getElementsByName("attribute.Identifier Source");
for (var i=0, l=myCollection.length; i<l; i++)
myCollection[i] = onChangeHandler;
函数onChangeHandler(){
//做点什么
}
var myCollection=document.getElementsByName(“attribute.Identifier源”);
对于(var i=0,l=myCollection.length;i有一种按顺序执行此操作的替代方法。您可以使用伪类标记html代码,并执行以下操作:
var elems=document.querySelectorAll(".mark");
for(var i=0;i<elems.length;i++){
elems[i].addEventListener("change", myFunction);
}
var elems=document.queryselectoral(“.mark”);
对于(var i=0;i
function onChangeHandler() {
// do some stuff
}
var myCollection = document.getElementsByName("attribute.Identifier Source");
for (var i=0, l=myCollection.length; i<l; i++)
myCollection[i] = onChangeHandler;
function onChangeHandler(event) {
// some browser abstraction
if (!event) event = window.event;
var changedElement = event.srcElement || this;
// do some stuff
}
var myCollection = document.getElementsByName("attribute.Identifier Source");
for (var i=0, l=myCollection.length; i<l; i++) {
myCollection[i].addEventListener('change', onChangeHandler, false);
/* if you want to support older MSIE, you would do some like
var el = myCollection[i];
if (el.addEventListener) {
el.addEventListener('change', onChangeHandler, false);
}
else if (el.attachEvent) {
el.attachEvent('onchange', onChangeHandler);
}
*/
}
var elems=document.querySelectorAll(".mark");
for(var i=0;i<elems.length;i++){
elems[i].addEventListener("change", myFunction);
}