第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

當(dāng)字符串添加到 DocumentFragment.innerHTML 時(shí),沒(méi)有孩子,如何解決?

當(dāng)字符串添加到 DocumentFragment.innerHTML 時(shí),沒(méi)有孩子,如何解決?

慕的地6264312 2021-12-23 19:52:00
當(dāng)一些 html 字符串添加到 DocumentFragmentinnerHTML屬性時(shí),不存在子元素。但是與createElement表演兒童創(chuàng)建的元素相同的動(dòng)作。我創(chuàng)建了一個(gè)簡(jiǎn)單的例子來(lái)比較 DocumentFragment 和 simple Element 的 innerHTML 行為:const fragment = document.createDocumentFragment();const div = document.createElement('div')fragment.innerHTML = "<i>Test</i>";console.log('fragment children:', fragment.children); // emptyfragment.innerHTML = "<i><b>Test</b></i>";console.log('fragment children:', fragment.children); // emptydiv.innerHTML = "<i>Test</i>";console.log('div children:', div.children) // has childrendiv.innerHTML = "<i><b>Test</b></i>";console.log('div children:', div.children)  // has children但是片段可以顯示由 appendChild 添加的子項(xiàng):const span = document.createElement('span');const fragment2 = document.createDocumentFragment();fragment2.appendChild(span);console.log('fragment children for appendChild', fragment2.children);如何修復(fù)這個(gè)奇怪的 DocumentFragment 行為?附加:我需要 DocumentFragment 作為臨時(shí) HTML 容器。
查看完整描述

1 回答

?
慕尼黑的夜晚無(wú)繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

div從繼承HTMLElement原型中,一個(gè)孩子Node原型


DocumentFragment直接從Node原型繼承。


也就是說(shuō),它div具有所有 Node 方法和屬性以及所有 HTMLElement 方法和屬性。


DocumentFragment 只有 Node 方法和屬性。


盡管 Node 原型具有生育孩子的能力,innerHTML但并不作為先天屬性存在。這僅適用于HTMLElement及其子項(xiàng)(在本例中HTMLDivElement)。


分配給原型innerHTML的子代Node只是innerHTML用您的字符串作為值創(chuàng)建屬性,但僅此而已。


基本上,元素具有內(nèi)部連線,可以告訴它們do何時(shí)innerHTML分配/更新什么。節(jié)點(diǎn)沒(méi)有。


您可以在下面看到這一點(diǎn):


const fragment = document.createDocumentFragment();

const div = document.createElement('div');


console.log("innerHTML in fragment: " + ('innerHTML' in fragment) );

console.log("innerHTML in element: " + ('innerHTML' in div) );


為了將某些東西用作 acontainer并加以利用,innerHTML您實(shí)際上只需要?jiǎng)?chuàng)建一個(gè)包含您要添加的內(nèi)容的元素。您可以使用許多不同的東西,例如templateElement 或DOMParser,但老實(shí)說(shuō),最簡(jiǎn)單的方法是創(chuàng)建一個(gè)單獨(dú)的div并將其分類為container


let container = document.createElement("div");

container.className = "container";


let div = document.createElement("div");

container.className = "child";


container.appendChild(div);


document.body.appendChild(container);

.container {


width: 100px;

height: 100px;

border: 1px solid red;

}


.child {

 width: 10px;

 height: 10px;

 border: 1px solid green;

}


查看完整回答
反對(duì) 回復(fù) 2021-12-23
  • 1 回答
  • 0 關(guān)注
  • 345 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)