JS小技巧之通過字符串追加元素
JS通過字符串追加元素
原生JS中通過動態(tài)的創(chuàng)建createElement,但是元素里面內(nèi)容較多,需要innerHTML賦值,在appendChild追加到父元素里面。
如下代碼:
// 動態(tài)添加對象 // 1. 創(chuàng)建元素 var li = document.createElement('li'); // 2. 添加節(jié)點 li.innerHTML = text.value; ? // 3.1 將一個節(jié)點添加到指定父節(jié)點的子節(jié)點列表末尾 ul.appendChild(li); ? // 3.2 將一個節(jié)點添加到父節(jié)點的指定子節(jié)點前面 ul.insertBefore(li, ul.children[0]);
現(xiàn)在,高級的做法是利用insertAdjacentHTML()可以直接把字符串格式元素添加到父元素中。
// 這里的ul是父節(jié)點 var li = '<li class="liactive"><span>測試</span></li>'; ul.insertAdjacentHTML('beforeend', li); ? // 第一個參數(shù)是插入的位置,該參數(shù)有以下四個值: // beforebegin:插入到元素自身的前面 // afterbegin:插入元素內(nèi)部的第一個子節(jié)點之前 // beforeend:插入元素內(nèi)部的最后一個子節(jié)點之后 // afterend:插入到元素自身的后面
如appendChild的方法與insertAdjacentHTML()方法之間的區(qū)別在于:前者不支持追加字符串的子元素,后者支持
JS追加字符串的奇怪問題
遇到一個奇怪的問題,JS在向一個table追加一行信息的時候tr,td元素全部被過濾掉了
打印出來的原始字符串如下圖:
追加以后的結(jié)構(gòu)如下圖:
出現(xiàn)這個問題的主要原因就在于那個隱藏域上,也就是tr之后多了其它的元素就會出現(xiàn)這個問題,但至于為什么會這樣,可能是自己技術(shù)沒到家哈,理解的不夠,不知道怎么回事
解決很簡單
把隱藏域放到td里面去就沒有問題了,原理就不知道了,記一下,僅防以后再犯此類錯誤
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript累加、迭代、窮舉、遞歸等常用算法實例小結(jié)
這篇文章主要介紹了JavaScript累加、迭代、窮舉、遞歸等常用算法,結(jié)合實例形式分析了javascript累加、迭代、遞推、窮舉等算法的相關(guān)實現(xiàn)技巧與注意事項,需要的朋友可以參考下2018-05-05javascript tips提示框組件實現(xiàn)代碼
一個簡單的類似title的提示效果,但現(xiàn)實內(nèi)容可以很豐富,以上js另存為tip.js,下面是使用的demo。2010-11-11