JS如何實(shí)現(xiàn)動(dòng)態(tài)添加的元素綁定事件
這篇文章主要介紹了JS如何實(shí)現(xiàn)動(dòng)態(tài)添加的元素綁定事件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
最近做的項(xiàng)目要實(shí)現(xiàn)一個(gè)動(dòng)態(tài)添加動(dòng)態(tài)刪除的功能,思考了一下,該怎么給動(dòng)態(tài)添加的元素綁定事件。最后覺(jué)得有兩種方式比較可靠,第一種是在動(dòng)態(tài)添加的html代碼里添加oclick事件,然后給傳個(gè)唯一的參數(shù)來(lái)判斷點(diǎn)擊了哪個(gè),然后做相應(yīng)的操作,第二種是通過(guò)事件委托的原理來(lái)處理,事件委托將一個(gè)事件偵聽(tīng)器實(shí)際綁定到整個(gè)容器,然后在單擊它時(shí)能夠訪問(wèn)每個(gè)列表項(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)識(shí)
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);
}
});
效果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript學(xué)習(xí)筆記之惰性函數(shù)示例詳解
函數(shù)是js世界的一等公民,js的動(dòng)態(tài)性、易變性在函數(shù)的應(yīng)用上,體現(xiàn)的淋漓盡致。下面這篇文章主要給大家介紹了關(guān)于JavaScript學(xué)習(xí)筆記之惰性函數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-08-08
JAVASCRIPT下判斷IE與FF的比較簡(jiǎn)單的方式
在JAVASCRIPT當(dāng)中可以通過(guò)取當(dāng)前瀏覽器返回值來(lái)判斷當(dāng)前使用什么瀏覽器。2008-10-10
Boostrap柵格系統(tǒng)與自己額外定義的媒體查詢的沖突問(wèn)題
這篇文章主要介紹了Boostrap柵格系統(tǒng)與自己額外定義的媒體查詢的沖突問(wèn)題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02
JS實(shí)現(xiàn)區(qū)分中英文并統(tǒng)計(jì)字符個(gè)數(shù)的方法示例
這篇文章主要介紹了JS實(shí)現(xiàn)區(qū)分中英文并統(tǒng)計(jì)字符個(gè)數(shù)的方法,涉及JavaScript事件響應(yīng)、正則匹配及數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2018-06-06
javascript高亮效果的二種實(shí)現(xiàn)方法
js高亮效果實(shí)現(xiàn)代碼,直接靜態(tài)頁(yè)面即可,不用每次都要生成2008-09-09
window.location.hash 屬性使用說(shuō)明
location是javascript里邊管理地址欄的內(nèi)置對(duì)象,比如location.href就管理頁(yè)面的url,用location.href=url就可以直接將頁(yè)面重定向url。而location.hash則可以用來(lái)獲取或設(shè)置頁(yè)面的標(biāo)簽值。2010-03-03
JavaScript設(shè)置FieldSet展開(kāi)與收縮
JavaScript設(shè)置FieldSet展開(kāi)與收縮實(shí)現(xiàn)代碼。2009-05-05
教你巧用?import.meta?實(shí)現(xiàn)熱更新的問(wèn)題
import.meta?是一個(gè)給?JavaScript?模塊暴露特定上下文的元數(shù)據(jù)屬性的對(duì)象,它包含了這個(gè)模塊的信息,這篇文章主要介紹了巧用?import.meta?實(shí)現(xiàn)熱更新的問(wèn)題,需要的朋友可以參考下2022-04-04

