JS如何實(shí)現(xiàn)動態(tài)添加的元素綁定事件
這篇文章主要介紹了JS如何實(shí)現(xiàn)動態(tài)添加的元素綁定事件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
最近做的項(xiàng)目要實(shí)現(xiàn)一個動態(tài)添加動態(tài)刪除的功能,思考了一下,該怎么給動態(tài)添加的元素綁定事件。最后覺得有兩種方式比較可靠,第一種是在動態(tài)添加的html代碼里添加oclick事件,然后給傳個唯一的參數(shù)來判斷點(diǎn)擊了哪個,然后做相應(yīng)的操作,第二種是通過事件委托的原理來處理,事件委托將一個事件偵聽器實(shí)際綁定到整個容器,然后在單擊它時能夠訪問每個列表項(xiàng),這種更高效一些
具體的代碼實(shí)現(xiàn)如下:
第一:onclick
<body> <button onclick="AddJob()">添加工作經(jīng)歷</button> <button onclick="GetJobs()">獲取全部工作</button> <div id="joblist"> <div id="job1" class="job"> <input name="CompanyName" type="text" value="公司1" /> <button onclick="DelJob(1)">刪除</button> </div> </div> <script type="text/javascript"> //添加工作經(jīng)歷 function AddJob() { var timestamp = parseInt((new Date()).valueOf()); //唯一的標(biāo)識 console.log(parseInt((new Date()).valueOf())); document.getElementById("joblist").innerHTML += `<div id="job` + timestamp + `" class="job"> <input name="CompanyName" type="text" value="公司` + timestamp + `" /> <button onclick="DelJob(` + timestamp + `)">刪除</button> </div>`; } //刪除工作經(jīng)歷 function DelJob(timestamp) { document.getElementById("job" + timestamp).remove(); } //獲取全部工作經(jīng)歷 function GetJobs() { var jobs = document.getElementsByClassName("job"); var arr = []; for (var i = 0; i < jobs.length; i++) { var job = jobs[i]; var companyName = job.children[0].value; arr.push(companyName); } console.log(arr); alert(arr); } </script> </body>
第二種:
document.getElementById('joblist').addEventListener('click', function (ev) { var target = ev.target || ev.srcElement; if (target.nodeName.toLowerCase() == 'button') { var e = document.getElementById(target.parentNode.id); document.getElementById("joblist").removeChild(e); } });
效果
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
G6?TreeGraph樹圖節(jié)點(diǎn)懶加載使用場景示例
這篇文章主要為大家介紹了G6?TreeGraph樹圖節(jié)點(diǎn)懶加載使用場景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10js 計數(shù)排序的實(shí)現(xiàn)示例(升級版)
這篇文章主要介紹了js 計數(shù)排序的實(shí)現(xiàn)示例(升級版),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01使用firebug進(jìn)行調(diào)試javascript的示例
調(diào)試javascript的方法有很多,在本文為大家介紹下使用firebug是如何做到的,感興趣的朋友可以參考下2013-12-12JavaScript與Java正則表達(dá)式寫法的區(qū)別介紹
這篇文章主要介紹了JavaScript與Java正則表達(dá)式寫法的區(qū)別介紹,需要的朋友可以參考下2017-08-08JS遍歷數(shù)組和對象的區(qū)別及遞歸遍歷對象、數(shù)組、屬性的方法詳解
本文給大家js遍歷數(shù)組和遍歷對象的區(qū)別,一般來說for用來遍歷數(shù)組對象而for-in用來遍歷非數(shù)組對象。接下來小編給大家?guī)砹薺s遍歷數(shù)組和對象的區(qū)別及js遞歸遍歷對象、數(shù)組、屬性的方法詳解,一起看下吧2016-06-06BootStrap3學(xué)習(xí)筆記(一)之網(wǎng)格系統(tǒng)
本文給大家介紹BootStrap3網(wǎng)格系統(tǒng)的相關(guān)知識,本文介紹的非常詳細(xì),具有參考借鑒價值,感興趣的朋友一起學(xué)習(xí)吧2016-05-05Javascript ES6中對象類型Sets的介紹與使用詳解
這篇文章主要給大家介紹了關(guān)于Javascript ES6中Sets的介紹與使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-07-07