原生html绑定onclick事件,使用原生js给每个li绑定onclick点击事件,输出每条li的下标(索引)的几种方式...

使用原生js给每个li绑定onclick点击事件,输出每条li的下标(索引)

htm部分

  • 11111
  • 22222
  • 33333
  • 44444
  • 55555

首先需要获取页面中每一条li节点

var lis=document.querySelectorAll('li');

1、通过设置属性方式 给每一条li设置属性index为i, 点击时就可以获取this的index属性。

for(var i=0;i

lis[i].index=i;

lis[i].οnclick=function(){

console.log(this.index);

}

}

2、通过设置自定义属性方式, 给每一条li设置自定义属性index为i, 点击时就可以获取this的自定义属性index,同上面方法相似。

for(var i=0;i

lis[i].setAttribute('index',i);

lis[i].οnclick=function(){

console.log(this.getAttribute('index'));

}

}

3、通过bind改变this指向为每一条li,传入第二个参数为i,在点击时就可以获取到i。

for(var i=0;i

lis[i].οnclick=function(i){

console.log(i,this);

}.bind(lis[i],i);

}

4、通过通过闭包自执行函数方式 ,传入参数i,在函数内容返回一个函数体 赋值给每一条点击的li。

for(var i=0;i

//自执行函数把i作为实参,传递进去了,在内层函数进行使用

lis[i].οnclick=(function(index){

// 每个事件都构成了一个闭包,每个闭包里都有一个自己的iindex

return function(){

console.log(index);

}

})(i);

}

5、通过let 的块级作用域特点 获取到的是每个独立的i。

for(let i=0;i

lis[i].οnclick=function(){

console.log(i);

}

}

6、通过数组forEach方式 无论箭头函数还是普通函数都能拿到index

lis.forEach(function(item,index){

item.οnclick=function(){

console.log(index);

}

})

lis.forEach(function(item,index){

item.οnclick=()=>{

console.log(index);

}

})

lis.forEach((item,index)=>{

item.οnclick=()=>{

console.log(index);

}

})

以上内容为自己整理,如有问题评论区欢迎讨论学习

### 回答1: 可以使用addEventListener方法给按钮绑定两个onclick事件。例如代码如下: var btn = document.getElementById("myBtn"); btn.addEventListener("click", function() { // 第一个事件的处理函数 }); btn.addEventListener("click", function() { // 第二个事件的处理函数 }); ### 回答2: 在JavaScript中,可以使用addEventListener()方法给一个按钮绑定多个onclick事件,具体的步骤如下: 1.获取按钮元素 首先,需要获取要绑定事件的按钮元素。可以通过getElementById()、getElementsByClassName()等方法来获取DOM对象。 2.绑定onclick事件 使用addEventListener()方法给按钮绑定onclick事件,代码如下: ``` button.addEventListener("click", function(){ // first onclick function }); ``` 此时,按钮只绑定了一个onclick事件。 3.绑定一个onclick事件 继续使用addEventListener()方法,给按钮绑定另一个onclick事件,代码如下: ``` button.addEventListener("click", function(){ // second onclick function }); ``` 此时,按钮就绑定了两个onclick事件。完整的代码如下: ``` // 获取按钮元素 var button = document.getElementById("btn"); // 绑定第一个onclick事件 button.addEventListener("click", function(){ // first onclick function }); // 绑定第二个onclick事件 button.addEventListener("click", function(){ // second onclick function }); ``` 这样,在用户点击按钮时,就会依次触发这两个onclick事件。如果需要依次执行这两个onclick事件,可以在第一个onclick函数中调用第二个onclick函数。 ### 回答3: 在原生JS中,我们可以使用addEventListener()方法来为一个按钮绑定多个事件。此方法可以为指定元素添加一个事件,当该元素上的事件被触发时,指定的函数将被执行。因此,我们可以多次使用该方法为不同的事件绑定不同的处理函数。 具体实现如下: 1.首先,我们需要获取要绑定点击事件的按钮,例如: var btn = document.getElementById('myBtn'); 2.为该按钮分别绑定不同的事件处理函数,例如: btn.addEventListener('click', function(){ //第一个点击事件的处理函数 }); btn.addEventListener('click', function(){ //第二个点击事件的处理函数 }); 在这个例子中,我们为按钮btn分别绑定了两个点击事件处理函数,它们分别在按钮被点击时执行。当我们点击按钮时,这两个函数都会被调用。 如果你想要按照一定的顺序来执行这两个函数,你可以在第一个函数中调用第二个函数。例如: btn.addEventListener('click', function(){ //第一个点击事件的处理函数 myFunction2(); }); function myFunction2(){ //第二个点击事件的处理函数 } 我们在第一个点击事件的处理函数中调用了第二个函数,以此来确保这两个函数按照我们预期的顺序执行。 需要注意的是,该方法可以为同一元素的同一个事件绑定多个处理函数,也可以为不同的事件绑定多个处理函数。因此,在使用该方法时需要注意不要重复绑定同一个事件处理函数,以免导致冗余或者冲突。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值