-
de查看全部
-
before() this.parentNode.insertBefore( elem, this ); append() target.appendChild( elem ); prepend() target.insertBefore( elem, target.firstChild );查看全部
-
append、appendTo prepend、prependTo before、insertBefore after、insertAfter replaceWith、replaceAll查看全部
-
.text() 方法不能使用在 input 元素或 scripts 元素上。 input 或 textarea 需要使用 .val() 方法獲取或設(shè)置文本值。得到scripts元素的值,使用.html()方法查看全部
-
我們參考右邊的代碼,整個(gè)流程如下: 分解類型,jQuery對(duì)象,節(jié)點(diǎn)對(duì)象,文本,字符串,腳本 引入nodes收集各種分解的類型數(shù)據(jù) 針對(duì)html節(jié)點(diǎn),兼容IE的處理,先過(guò)濾空白,然后補(bǔ)全tr,td等 創(chuàng)建文檔碎片的div包含節(jié)點(diǎn),把html結(jié)構(gòu)給innerHTML進(jìn)去 取出創(chuàng)建的節(jié)點(diǎn),jQuery.merge(nodes, tmp.childNodes),因?yàn)榭縟iv包裝過(guò)查看全部
-
我們只需要把不同類型的參數(shù)分解后,壓入到文檔碎片就可以了,當(dāng)然因?yàn)轭愋偷牟煌幚淼姆绞揭灿胁煌?查看全部
-
createElement創(chuàng)建的元素可以重復(fù)操作,添加之后就算從文檔里面移除依舊歸文檔所有,可以繼續(xù)操作,但是createDocumentFragment創(chuàng)建的元素是一次性的,添加之后再就不能操作了,查看全部
-
不過(guò)它有一種特殊的行為,該行為使得它非常有用: 即當(dāng)請(qǐng)求把一個(gè) DocumentFragment 節(jié)點(diǎn)插入文檔樹(shù)時(shí),插入的不是 DocumentFragment 自身,而是它的所有子孫節(jié)點(diǎn)。這使得 DocumentFragment 成了有用的占位符,暫時(shí)存放那些一次插入文檔的節(jié)點(diǎn)。它還有利于實(shí)現(xiàn)文檔的剪切、復(fù)制和粘貼操作,尤其是與 Range 接口一起使用時(shí)更是如此。查看全部
-
DocumentFragment節(jié)點(diǎn)具有下列特征: 1. nodeType的值為11 2. nodeName的值為“#document-fragment” 3. nodeValue的值為 null 4. parentNode的值為 null 5. 子節(jié)點(diǎn)可以是 Element、ProcessingInstruction、Comment、Text、CDATASection 或 EntityReference查看全部
-
首先無(wú)作用域的問(wèn)題,通過(guò)文檔碎片創(chuàng)建一個(gè)div的包含容器,讓所有的元素都被div元素給包含起來(lái),包括script,style等無(wú)作用域的元素,很好的解決了 針對(duì)不支持innerHTML屬性的元素,給單獨(dú)提出來(lái),通過(guò)正則抽出來(lái)這個(gè)節(jié)點(diǎn)名字去處理查看全部
-
innerHTML兼容性問(wèn)題 IE會(huì)對(duì)用戶字符串進(jìn)行trimLeft操作,用戶可能的本意就是需要空白 IE8有些元素innerHTML是只讀 IE會(huì)忽略開(kāi)頭的無(wú)作用域元素 大多情況下不執(zhí)行script腳本,當(dāng)然如果支持defer的IE9之前的瀏覽器除外 一些標(biāo)簽不能作為div的子元素,如tr,tb, col等查看全部
-
這個(gè)任務(wù)就交給了domManip,除此之外domManip在設(shè)計(jì)上需要做的處理: 1:解析參數(shù),字符串,函數(shù),對(duì)象 2:針對(duì)大數(shù)據(jù)引入文檔碎片處理 3:如果參數(shù)中包含script的處理查看全部
-
defer 屬性規(guī)定是否對(duì)腳本執(zhí)行進(jìn)行延遲,直到頁(yè)面加載為止。查看全部
-
其中append方法: append: function() { return this.domManip(arguments, function(elem) { if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { var target = manipulationTarget(this, elem); target.appendChild(elem); } }); }查看全部
-
IE下面innerHTML會(huì)忽略沒(méi)作用域元素,no-scope element(script,link,style,meta,noscript)等,所以這類通過(guò)innerHTML創(chuàng)建需要加前綴 換句話說(shuō),這樣設(shè)置 div.innerHTML = "<div><script defer>alert(1)</srcript></div>" 可以執(zhí)行查看全部
舉報(bào)
0/150
提交
取消