JS如何實現(xiàn)動態(tài)添加的元素綁定事件
這篇文章主要介紹了JS如何實現(xiàn)動態(tài)添加的元素綁定事件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
最近做的項目要實現(xiàn)一個動態(tài)添加動態(tài)刪除的功能,思考了一下,該怎么給動態(tài)添加的元素綁定事件。最后覺得有兩種方式比較可靠,第一種是在動態(tài)添加的html代碼里添加oclick事件,然后給傳個唯一的參數(shù)來判斷點(diǎn)擊了哪個,然后做相應(yīng)的操作,第二種是通過事件委托的原理來處理,事件委托將一個事件偵聽器實際綁定到整個容器,然后在單擊它時能夠訪問每個列表項,這種更高效一些
具體的代碼實現(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)文章
JavaScript學(xué)習(xí)筆記之惰性函數(shù)示例詳解
函數(shù)是js世界的一等公民,js的動態(tài)性、易變性在函數(shù)的應(yīng)用上,體現(xiàn)的淋漓盡致。下面這篇文章主要給大家介紹了關(guān)于JavaScript學(xué)習(xí)筆記之惰性函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-08-08
Boostrap柵格系統(tǒng)與自己額外定義的媒體查詢的沖突問題
這篇文章主要介紹了Boostrap柵格系統(tǒng)與自己額外定義的媒體查詢的沖突問題,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02
JS實現(xiàn)區(qū)分中英文并統(tǒng)計字符個數(shù)的方法示例
這篇文章主要介紹了JS實現(xiàn)區(qū)分中英文并統(tǒng)計字符個數(shù)的方法,涉及JavaScript事件響應(yīng)、正則匹配及數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2018-06-06
JavaScript設(shè)置FieldSet展開與收縮
JavaScript設(shè)置FieldSet展開與收縮實現(xiàn)代碼。2009-05-05
教你巧用?import.meta?實現(xiàn)熱更新的問題
import.meta?是一個給?JavaScript?模塊暴露特定上下文的元數(shù)據(jù)屬性的對象,它包含了這個模塊的信息,這篇文章主要介紹了巧用?import.meta?實現(xiàn)熱更新的問題,需要的朋友可以參考下2022-04-04

