js 向页面添加元素后,怎么直接获取这个元素?

const html = '<li>111111</li>'
// 添加 li
const li = document.createElement('li')
document.body.appendChild(li)
// 改变它
li.outerHTML = html
// 输出的是空的 li 标签
console.log(li)

// ----

如上,我有一段字符串格式的 html 代码,想把它添加到页面上,并随后使用它。但这样执行最后输出的是空标签,并不是页面上添加到的这个元素。

如果不给这个元素添加 id、class 等选择器,想要在添加后获取这个元素,该怎么做呢?求教

已解决 悬赏分:0 - 解决时间 2021-11-28 02:20
反对 0举报 0 收藏 0

回答1

最佳
  • @

    element DOM接口的outerHTML属性获取描述元素(包括其后代)的序列化HTML片段。它也可以设置为用从给定字符串解析的节点替换元素。MDN

    li.outerHTML = html

    执行这一步的时候你相当于把已经添加到页面的 li 标签换成了一个新的 li 标签(内容为111111),原始的变量 li 依旧是一个空的 li 标签

    按你的逻辑这一步应该是

    li.innerHTML = '111111'

    当然,可以的话用 innerText 最好

    支持 0 反对 0 举报
    2021-11-27 08:17