首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用insertAdjacentHTML插入元素时,queryselector不再拾取该元素

使用insertAdjacentHTML插入元素时,querySelector不再拾取该元素。

insertAdjacentHTML是DOM API中的一个方法,用于在指定元素的相对位置插入HTML代码。它接受两个参数,第一个参数是一个字符串,用于指定插入的位置,包括"beforebegin"、"afterbegin"、"beforeend"和"afterend";第二个参数是要插入的HTML代码。

当使用insertAdjacentHTML插入元素时,这个元素并不会立即被DOM树所识别,因此在插入后,querySelector方法无法直接找到该元素。这是因为querySelector方法是基于DOM树进行元素查找的,而插入的元素尚未被DOM树所包含。

如果需要在插入元素后使用querySelector方法获取该元素,可以在插入元素后手动调用querySelector方法进行查找。例如:

代码语言:txt
复制
const container = document.getElementById('container');
container.insertAdjacentHTML('beforeend', '<div id="newElement">New Element</div>');

const newElement = container.querySelector('#newElement');
console.log(newElement); // 输出: <div id="newElement">New Element</div>

在上述代码中,首先通过getElementById方法获取到容器元素container,然后使用insertAdjacentHTML方法在容器的末尾插入一个新的div元素。最后,通过querySelector方法获取到新插入的元素newElement,并将其输出到控制台。

需要注意的是,如果插入的HTML代码中包含有id属性或其他具有唯一性的属性,可以通过这些属性来查找插入的元素。另外,如果插入的元素是一个集合(例如多个div元素),可以使用querySelectorAll方法获取到所有插入的元素。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):提供弹性计算能力,满足各类业务需求。详情请参考:https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库MySQL版:提供高性能、可扩展的MySQL数据库服务。详情请参考:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):提供安全、稳定、低成本的云端存储服务。详情请参考:https://cloud.tencent.com/product/cos
  • 腾讯云人工智能:提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等。详情请参考:https://cloud.tencent.com/product/ai
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 querySelector 查询元素,如何使用正则进行模糊匹配查询?

你好,今天聊一个简单的技术问题,使用 querySelector 方法查询网页上的元素,如何使用正则进行模糊匹配查询?...其中,13jj5 并不是固定的,它是一串随机字符,是前端框架在编译为了避免组件样式混淆而故意添加的。...如果我们在智能化产品中直接这样查询目标元素: document.querySelector('h2.UserInfoBox_textEllipsis_13jj5') 下次产品重发后,代码便不再有效了。...这种情况便适合采用属性值正则匹配选择器: document.querySelector('h2[class^="UserInfoBox_textEllipsis"]'); 最后,回顾一下,使用属性值正则匹配选择器...,关键记忆点有两个: 1)使用了中括号,直接用在元素选择器后面。

1.2K20

13个需要知道的方法:使用 JavaScript 来操作 DOM

document.querySelectorAll 方法返回与指定的选择器组匹配的文档中的元素列表 (使用深度优先的先序遍历文档的节点)。返回的对象是 NodeList 。...请注意,返回的节点不再是DOM的一部分,而是仍存在于内存中。 如果处理不当,可能会导致内存泄漏。...,deep(可选)表示是否采用深度克隆,如果为true,则节点的所有后代节点也都会被克隆,如果为false,则只克隆节点本身. let list = document.querySelector('...它不会重新解析它正在使用元素,因此它不会破坏元素内的现有元素。这避免了额外的序列化步骤,使其比直接innerHTML操作更快。...beforeend:插入元素内部的最后一个子节点之后。 afterend:元素自身的后面。 text是要被解析为HTML或XML,并插入到DOM树中的字符串。 <!

65820
  • C1 能力认证——Web进阶

    如果属性已经存在,则更新值;否则,使用指定的名称和值添加一个新的属性 通过属性名更改属性 对元素属性重新赋值可更改对应属性值 DOM添加 名称 描述 createElement(tagName) 创建一个由标签名称...tagName指定的HTML元素 appendChild(node) 将一个节点插入到指定父节点的子节点列表的末尾处 insertAdjacentHTML(position, text) 将指定文本解析为...ul的最后一个元素插入,参数只有一个lastItem代表元素节点,最后一空应为符合要求的节点添加方法 将内容为第一名的元素插入到ol元素内的第一行,请补全横线处代码 第二名...('________', '第二名') beforebegin # insertAdjacentHTML方法的第一个参数为插入位置,题目要求要插入元素内的第二行,.../h1> load # 由于代码中的js写在了h1元素上方,所以需要等待页面加载完成才能获取到此元素,此处需使用页面加载完成触发的事件 浏览器窗口宽度为1000px,p元素的字体大小为______

    3.2K30

    HTML5中的DOM扩展(三)插入标记

    插入标记 我们之前用的api大多数都是获取元素内容,HTML5规范中定义了一个向标签元素内添加内容的方法。...innerHTML innerHTML是向元素插入一个字符串,注释或者文本标记,它会根据现在提供的内容重新渲染到DOM树上,替代之前元素包含的所有节点。...insertAdjacentHTML()和inserAdjacentText() 这俩个方法都接受俩个参数,第一个参数是固定的,必须是以下4中类型 "beforebegin",插入当前元素前面,作为前一个同胞节点...; "afterbegin",插入当前元素内部,作为新的子节点或放在第一个子节点前面; "beforeend",插入当前元素内部,作为新的子节点或放在最后一个子节点后面; "afterend",插入当前元素后面...// 作为前一个同胞节点插入 name.insertAdjacentHTML("beforebegin", "jackson!!!

    1.9K40

    C1能力认证训练题解析 _ 第四部分 _ Web进阶「建议收藏」

    如果属性已经存在,则更新值;否则,使用指定的名称和值添加一个新的属性 通过属性名更改属性 对元素属性重新赋值可更改对应属性值 2....insertAdjacentHTML(position, text) 将指定文本解析为HTML字符串,插入到指定位置(IE不友好) position(内容相对当前元素位置): ‘beforebegin...('________', '第一名') 答案:afterbegin insertAdjacentHTML方法的第一个参数为插入位置,题目要求要插入元素内第一行,.../script> 答案:innerHTML 此处需要插入一个p元素插入的值为字符串,所以需要使用可以解析html字符串的DOM属性,返回元素中的html内容。...= "欢迎光临" }) 等待中 答案:load 由于代码中的js写在了h1元素上方,所以需要等待页面加载完成才能获取到此元素,此处需使用页面加载完成触发的事件

    2K20

    面向对象版tab 栏切换

    抽象对象: Tab对象 对象具有切换功能 对象具有添加功能 对象具有删除功能 对象具有修改功能 2、案例准备 获取到标题元素 获取到内容元素 获取到删除的小按钮...为获取到的标题绑定点击事件,展示对应的内容区域,存储对应的索引 this.lis[i].index = i; this.lis[i].onclick = this.toggleTab; 使用排他...现在高级做法:利用insertAdjacentHTML()可以直接把字符串格式元素添加到父元素中 appendChild不支持追加字符串的子元素, insertAdjacentHTML支持追加字符串的元素...   that.ul.insertAdjacentHTML('beforeend', li);    that.fsection.insertAdjacentHTML('beforeend', section...that.sections[index].remove();     that.init();     // 当我们删除的不是选中状态的li 的时候,原来的选中状态li保持不变     if (document.querySelector

    3.8K30

    TypeScript 贪吃蛇游戏详细教程

    下面来对这个方法简单解释一下: insertAdjacentHTML() 是Element的API中的一个方法,可以将字符串文本转化为你想要的节点(Node),并且插入到你想要插入的位置中。...使用:element.insertAdjacentHTML(position,text) position参数 position就是想要插入的位置,一共有如下的4个固定的值 beforebegin:元素...afterbegin:插入元素element里面的第一个子节点之前(也就是总是会插入到最前面,例如我插入5个节点,顺序是1、2、3、4、5,那么我就需要以5、4、3、2、1的顺序插入,有一种栈结构先进后出的感觉...beforeend:插入元素element里面的最后一个子节点之后(这个比较容易理解,就是插入到最后一个节点后,例如我插入5个节点,顺序是1、2、3、4、5,那就正常的1、2、3、4、5就好啦,但是注意是在已有节点的后面哦...afterend:元素element自己的后面。 text参数 参数便是你想要插入的HTML元素,可以是字符串形式,也可以用ES6新增的模板字符串的形式。

    1.2K40

    再谈BOM和DOM(2):DOM节点层次属性选择器节点关系操作详解

    文本节点:包含文本、属性节点:包含属性、元素节点和文档节点:null hasChildNodes 包含一个或多个节点返回true contains 如果是后代节点返回true isEqualNode...:name属性名 getElementsByClassName() 一个参数:包含一个或多个类名的字符串 querySelector() 接收CSS选择符,返回匹配到的第一个元素,没有则null querySelectorAll...removeChild() 移除节点 cloneNode() 克隆,一个布尔值参数,true为深拷贝,false为浅拷贝 importNode() 从文档中复制一个节点,两个参数:要复制的节点和布尔值(是否复制子节点) insertAdjacentHTML...() 插入文本,两个参数:插入的位置和要插入文本"beforebegin",在元素插入"afterbegin",在元素第一个子元素插入"beforeend",在元素最后一个子元素后面插入"afterend...",在元素插入 "beforebegin",在元素插入 "afterbegin",在元素第一个子元素插入 "beforeend",在元素最后一个子元素后面插入 "afterend",在元素插入

    1.1K20

    面向对象版tab 栏切换

    为获取到的标题绑定点击事件,展示对应的内容区域,存储对应的索引 this.lis[i].index = i; this.lis[i].onclick = this.toggleTab; 使用排他...that.ul.insertAdjacentHTML('beforeend', li); that.fsection.insertAdjacentHTML('beforeend', section...that.sections[index].remove(); that.init(); // 当我们删除的不是选中状态的li 的时候,原来的选中状态li保持不变 if (document.querySelector.... 4.以前的做法:动态创建元素createElement , 但是元素里面内容较多,需要innerHTML赋值在appendChild 追加到父元素里面. 5.现在高级做法:利用insertAdjacentHTMLO...可以直接把字符串格式元素添加到父元素中 6.appendChild不支持追加字符串的子 愫, insertAdjacentHTML支持追加字符串的元素

    2K30

    面向对象版tab 栏切换案例

    双击tab项文字或者内容项文字可以修改里面的文字内容 1.2案例准备 获取到标题元素 获取到内容元素 获取到删除的小按钮 x号 新建js文件,定义类,添加需要的属性方法(切换,删除...为获取到的标题绑定点击事件,展示对应的内容区域,存储对应的索引 this.lis[i].index = i; this.lis[i].onclick = this.toggleTab; 使用排他...>'; var section = '测试 ' + random + ''; // (2) 把这两个元素追加到对应的父元素里面...that.ul.insertAdjacentHTML('beforeend', li); that.fsection.insertAdjacentHTML('beforeend', section...that.sections[index].remove(); that.init(); // 当我们删除的不是选中状态的li 的时候,原来的选中状态li保持不变 if (document.querySelector

    2.2K30

    属性 元素的内容 创建,插入和删除节点 虚拟节点

    作为attr节点的属性 一种使用Element的属性的方法。Node类型定义了attributes属性。针对非Element对象任何节点。属性为null。...以及 nodeList[0].textContent 两个方法相同 使用innerHTML可以获取元素的内容 同样也可以使用这个方法进行更改 nodeList[0].innerHTML = "hello...有两个定义好的api分别是element.insertAdjacentHTML 以及 Element.insertAdjacentText() 这两个元素内容 element.insertAdjacentHTML...此节点插入的html会被html解析器进行解析,如果用户插入请务必进行转义,防止小白攻击法 Element.insertAdjacentText() 这个仅仅是插入文本,建议一般使用这个,将不会产生dom...id为myimage的元素后边 myimage.appendChild(newnode) 插入节点 一旦有了一个新节点可以使用Node方法的appendChild或者insertBefore()将其完成插入

    2.4K30
    领券