javascript - 如果根據(jù)參數(shù)給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); } }
綁定相同函數(shù),但是每個(gè)tr傳的參數(shù)不同,應(yīng)該怎樣寫呢。現(xiàn)在這樣寫每個(gè)tr都被綁定最新賦值的參數(shù)。
問題解答
回答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:
// 給你寫個(gè)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>
相關(guān)文章:
1. javascript - 關(guān)于<a>元素與<input>元素的JS事件運(yùn)行問題2. android下css3動(dòng)畫非常卡,GPU也不差啊3. MySQL中的enum類型有什么優(yōu)點(diǎn)?4. css3 - 純css實(shí)現(xiàn)點(diǎn)擊特效5. mysql - 記得以前在哪里看過一個(gè)估算時(shí)間的網(wǎng)站6. javascript - vue 怎么渲染自定義組件7. mysql - 查詢字段做了索引為什么不起效,還有查詢一個(gè)月的時(shí)候數(shù)據(jù)都是全部出來的,如果分拆3次的話就沒問題,為什么呢。8. ID主鍵不是自增的嗎 為什么還要加null9. python - 啟動(dòng)Eric6時(shí)報(bào)錯(cuò):’qscintilla_zh_CN’ could not be loaded10. css - 新手做響應(yīng)式布局, 斷點(diǎn)過后右側(cè)出現(xiàn)空白,求幫助,謝謝。
