javascript - 如果根据参数给table中的tr绑定不同事件
问题描述
function update() { var container = document.getElementById('ItemContainer'); container.innerHTML = ''; for(var i=0;i<this.bookMarkList.length;i++){var name = this.ItemContainer[i].name;var tr = document.createElement(’tr’); var td = document.createElement(’td’);tr.appendChild(td);tr.onclick = function(){add(name);}; container.appendChild(tr); } }
绑定相同函数,但是每个tr传的参数不同,应该怎样写呢。现在这样写每个tr都被绑定最新赋值的参数。
问题解答
回答1:for(var i=0;i<this.bookMarkList.length;i++){(function(i){ var name = this.ItemContainer[i].name; var tr = document.createElement(’tr’); var td = document.createElement(’td’); tr.appendChild(td); tr.onclick = function(){add(name);}; container.appendChild(tr);})(i) } 回答2:
// 给你写个demo吧<!DOCTYPE html><html lang='en'><head><meta charset='UTF-8'><meta name='viewport' content='width=device-width, initial-scale=1.0'><meta http-equiv='X-UA-Compatible' content='ie=edge'><title>Document</title></head><style></style><body><table border='1' width='100'></table><script> function add (name) {alert(name); } function update() {var container = document.getElementById('ItemContainer');console.log(container);container.innerHTML = '';for(let i=0; i<5; i++) { let name = i; let tr = document.createElement(’tr’); let td = document.createElement(’td’); td.innerHTML = i; tr.appendChild(td); console.log(name) tr.onclick = function (){return add(name); }; container.appendChild(tr);} } update() </script></body></html>
相关文章:
1. PHP能实现百度网盘的自动化么?2. node.js - 微信的自动回复问题3. android - 使用vue.js进行原生开发如何进行Class绑定4. 网页爬虫 - python requests爬虫,如何post payload5. css3 - 请问一下在移动端CSS布局布局中通常需要用到哪些元素,属性?6. javascript - 百度图片切换图片时url会改变,但无刷新,没用hash,IE8也支持,请问是用了什么技术?7. MySQL 水平拆分之后,自动增长的ID有什么好的解决办法?8. mysql如何添加索引的时候指定索引方式9. angular.js - 各位大神们,你们混合开发,web方式中更推荐用什么框架呀? react?vue?angular?谢谢~10. 我正在使用jsp / jstl / spring动态生成css和js。如何将此结果放置在头部的链接标签中。不在头部的脚本标签中
