亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS小技巧之通過(guò)字符串追加元素

 更新時(shí)間:2023年01月14日 17:14:11   作者:一只卑微的菜狗  
這篇文章主要介紹了JS小技巧之通過(guò)字符串追加元素方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

JS通過(guò)字符串追加元素

原生JS中通過(guò)動(dòng)態(tài)的創(chuàng)建createElement,但是元素里面內(nèi)容較多,需要innerHTML賦值,在appendChild追加到父元素里面。

如下代碼:

// 動(dòng)態(tài)添加對(duì)象
// 1. 創(chuàng)建元素
var li = document.createElement('li');
// 2. 添加節(jié)點(diǎn)
li.innerHTML = text.value;
?
// 3.1 將一個(gè)節(jié)點(diǎn)添加到指定父節(jié)點(diǎn)的子節(jié)點(diǎn)列表末尾
ul.appendChild(li);
?
// 3.2 將一個(gè)節(jié)點(diǎn)添加到父節(jié)點(diǎn)的指定子節(jié)點(diǎn)前面
ul.insertBefore(li, ul.children[0]);

現(xiàn)在,高級(jí)的做法是利用insertAdjacentHTML()可以直接把字符串格式元素添加到父元素中。

// 這里的ul是父節(jié)點(diǎn)
var li = '<li class="liactive"><span>測(cè)試</span></li>';
ul.insertAdjacentHTML('beforeend', li);
?
// 第一個(gè)參數(shù)是插入的位置,該參數(shù)有以下四個(gè)值:
// beforebegin:插入到元素自身的前面
// afterbegin:插入元素內(nèi)部的第一個(gè)子節(jié)點(diǎn)之前
// beforeend:插入元素內(nèi)部的最后一個(gè)子節(jié)點(diǎn)之后
// afterend:插入到元素自身的后面

如appendChild的方法與insertAdjacentHTML()方法之間的區(qū)別在于:前者不支持追加字符串的子元素,后者支持

JS追加字符串的奇怪問(wèn)題

遇到一個(gè)奇怪的問(wèn)題,JS在向一個(gè)table追加一行信息的時(shí)候tr,td元素全部被過(guò)濾掉了

打印出來(lái)的原始字符串如下圖:

追加以后的結(jié)構(gòu)如下圖:

出現(xiàn)這個(gè)問(wèn)題的主要原因就在于那個(gè)隱藏域上,也就是tr之后多了其它的元素就會(huì)出現(xiàn)這個(gè)問(wèn)題,但至于為什么會(huì)這樣,可能是自己技術(shù)沒(méi)到家哈,理解的不夠,不知道怎么回事

解決很簡(jiǎn)單

把隱藏域放到td里面去就沒(méi)有問(wèn)題了,原理就不知道了,記一下,僅防以后再犯此類錯(cuò)誤

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論