如何使用 innerHTML/innerText 将内容附加到 querySelectorAll 元素?

Posted

技术标签:

【中文标题】如何使用 innerHTML/innerText 将内容附加到 querySelectorAll 元素?【英文标题】:How to append content to querySelectorAll element with innerHTML/innerText? 【发布时间】:2014-01-14 14:37:48 【问题描述】:

我目前有我的类元素:

var frame_2 = document.querySelectorAll(".name");

目前这个 div 是空的。我现在想在该 div 中“追加/添加”一些内容 - 我曾尝试使用 innerhtml + innerText 但由于某种原因似乎没有添加任何内容。

示例:

frame_2.innerHTML = '<img src="image.gif" />';

frame_2.innerText = 'some text';

有什么建议吗?我不确定是否有办法做同样的事情 - 或者在性能方面做得更好?

【问题讨论】:

document.querySelectorAll(".name")[0] -> 你得到一个列表并想要第一个项目 【参考方案1】:

这会给你一个包含类名的元素列表

var name=document.querySelectorAll(".name");

你想要第一个元素?

name[0].textContent='some text';

这给你一个单一的元素,第一个。

var name=document.querySelector(".name");
name.textContent='some text';

追加东西

name.appendChild(document.createTextNode('pizza'));
name.appendChild(document.createElement('div')).textContent='spaghetti';
name.appendChild(document.createElement('img')).src='cookie.jpg';

编辑

通过类名获取元素,然后检索 id :

var names=document.querySelectorAll(".name"),l;
while(l--)
console.log(names[l].id);

或者如果我没有正确理解

html

<div class="spaghetti" id="pizza"></div>

js

document.querySelector(".spaghetti#pizza")

EDIT2

html

<div id="container1"><div class="my-class"></div></div>

js

document.querySelector("#container1>.my-class")

【讨论】:

嗨,cocco,非常感谢您的回答。对于单元素选择器: document.querySelector(".name"); - 是否可以更精确地引用它 - 就像想象我在两个不同的容器中有 class .name,一个名为:“name-container-1”,另一个名为“name-container-2” 你想通过id获取元素吗? 不。我想通过类名获取它,但我想在特定的 id 容器中定位类名 我添加了一个关于如何获取每个元素的单独 id 的脚本。 抱歉不准确 - 场景是:【参考方案2】:

更简单的解决方案,任何用例。查询您的选择器:

let find = document.querySelector('.selector');

创建一些 html 作为字符串

let html = `put your html here`;

从字符串创建元素

  let div = document.createElement('div');
  div.innerHTML = html;

将您创建的新 html 添加到选择器

find.appendChild(div);

【讨论】:

以上是关于如何使用 innerHTML/innerText 将内容附加到 querySelectorAll 元素?的主要内容,如果未能解决你的问题,请参考以下文章

innerHTML、innerText、textContext和value的区别

InnerHTMl,innerText,outerHtml,outerText

markdown innerHTML,innerText,textContent

js中的innerHTML,innerText,value的区别

javaScript中innerHTML,innerText,outerHTML,outerText的区别

javascript中的innerHTML,innerText,outerHTML的用法及其区别