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

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

如何使用 JavaScript 附加 HTML 代碼?

如何使用 JavaScript 附加 HTML 代碼?

慕森王 2023-09-18 16:26:40
我正在嘗試使用 JavaScript 將元素添加到 DOM。我有一個(gè)ul,我想添加一個(gè)li。使用起來并不困難appendChild,但我希望我的li更復(fù)雜。這是我想要實(shí)現(xiàn)的輸出:<li>  <span class="author">Me</span>  <span class="message">Message...</span>  <span class="time">    <div class="line"></div>    15:21  </span></li>let author = "me";let message = "Message...";let time = "15:21";正如您所看到的,我想要實(shí)現(xiàn)的不僅僅是一些基本li文本(innerHTML),而是相當(dāng)大的 HTML 代碼塊。我的問題是如何使用 JavaScript 獲得此輸出?;蛘呶覒?yīng)該使用一些 JavaScript 庫(kù)或其他東西來使它更容易?
查看完整描述

5 回答

?
慕工程0101907

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

您可以使用字符串插值將變量添加到代碼中,如下所示

function appendHtml(el, str) {

? var div = document.createElement('div'); //container to append to

? div.innerHTML = str;

? while (div.children.length > 0) {

? ? el.appendChild(div.children[0]);

? }

}


let author = "me";

let message = "Message...";

let time = "15:21";


var html = `<li><span class="author">${author}</span><span class="message">${message}</span><span class="time"><div class="line"></div>${time}</span></li>`;

appendHtml(document.body, html);


查看完整回答
反對(duì) 回復(fù) 2023-09-18
?
翻過高山走不出你

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

如果你想插入 html 元素字符串作為 html 節(jié)點(diǎn),你必須創(chuàng)建 html 元素來使用appendChild()

但是,insertAdjacentHTML()如果作為字符串傳遞,則允許您添加 html 元素。 https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML

let author = "me";

let message = "Message...";

let time = "15:21";

let str = `<li><span class="author">${author}</span><span class="message">${message}</span><span class="time"><div class="line"></div>${time}</span></li>`;

document.querySelector('#nav').insertAdjacentHTML('beforeend', str);

<ul id='nav'><ul>


let html = `<li>

  <span class="author">Me</span>

  <span class="message">Message...</span>

  <span class="time">

    <div class="line"></div>

    15:21

  </span>

</li>`;

document.querySelector('#list').insertAdjacentHTML('beforeend', html);

<ul id='list'></ul>


查看完整回答
反對(duì) 回復(fù) 2023-09-18
?
偶然的你

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

您可以使用模板文字來insertAdjacentHTML實(shí)現(xiàn)干凈的方法。

function createListItem({ author, message, time }) {

? return `<li>

? ? <span class="author">${author}</span>

? ? <span class="message">${message}</span>

? ? <span class="time">

? ? ? <div class="line"></div>

? ? ? ${time}

? ? </span>

? </li>`;

}


const ul = document.querySelector('ul');


ul.insertAdjacentHTML('beforeend', createListItem({

? author: 'me',

? message: 'Message...',

? time: '15:21'

}));

.line { display: inline };

<ul>

? <li>Current</li>

</ul>



查看完整回答
反對(duì) 回復(fù) 2023-09-18
?
拉莫斯之舞

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

這是一個(gè)你可以使用的小技巧。


您實(shí)際上可以使用現(xiàn)有的 DOM (HTML) 作為一種模板,基本上克隆元素,然后用您想要的值替換部分。


首先,您使用remove從DOM中刪除該元素,盡管該元素已從DOM中刪除,但這并不能阻止您克隆它。


現(xiàn)在,每當(dāng)您需要另一個(gè)時(shí),請(qǐng)調(diào)用clone(true), true = deepClone,然后使用 querySelector 將 DOM 的一部分替換為您想要的位。最后將這個(gè)克隆元素添加到 DOM 中。


下面是一個(gè)簡(jiǎn)單的例子..


const ol = document.querySelector('ol');

const template = document.querySelector('li');

template.remove();


function append(o) {

  const {author, message, time} = o;

  const clone = template.cloneNode(true);

  clone.querySelector('.author').innerText=author;

  clone.querySelector('.message').innerText=message;

  clone.querySelector('.time').lastChild.nodeValue=time;

  ol.appendChild(clone); 

}


append({

  author: "me",

  message: "Message...",

  time: "15:21"

});


append({

  author: "Another me",

  message: "Something else..",

  time: "12:42"

});


append({

  author: "Whatever",

  message: "lalala..",

  time: "17:20"

});

.author {

  font-weight: bold;

  margin-right: 1rem;

}

.time {

  color: green;

}

li {

  margin: 0.5rem;

  border: 1px solid silver;

}

.line {

  border-bottom: 1px dotted red;

}

<ol>

  <li>

    <span class="author">Me</span>

    <span class="message">Message...</span>

    <span class="time">

      <div class="line"></div>

      15:21

    </span>

  </li>

</ol>


查看完整回答
反對(duì) 回復(fù) 2023-09-18
?
尚方寶劍之說

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

更簡(jiǎn)單,(對(duì)我來說)


const DomParser = new DOMParser()


function makeLI( author, message, time)

  {

  let ElemLI =

    `<li>

      <span class="author">${author}</span>

      <span class="message">${message}</span>

      <span class="time">

        <div class="line"></div>

        ${time}

      </span>

    </li>`

  return (DomParser.parseFromString( ElemLI, 'text/html')).body.firstChild

  }



// proof...

myList.appendChild(makeLI('you','Message...','15:21'))

myList.appendChild(makeLI('me','someone in ?','21:25'))

<ul id="myList"></ul>


查看完整回答
反對(duì) 回復(fù) 2023-09-18
  • 5 回答
  • 0 關(guān)注
  • 194 瀏覽

添加回答

舉報(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)