为什么使用queryselector方法找不到元素?即使在使用queryselector方法搜索元素时该元素已经存在于DOM树中,并且使用queryselector方法搜索本身也位于同一函数中,但是该元素是在哪里创建的呢?

它只能在标签本身的搜索中找到,而不能另外与属性一起找到.我不明白,因为整个语法可能都很好吧?

function createElementLabel (container) {
let labelElement = document.createElement("label");
container.appendChild(labelElement);
labelElement.classList.add(generateLetters());
labelElement.style.display = "inline-block";
labelElement.style.fontSize = "15px";
labelElement.style.color = "rgb(141, 145, 145)";
labelElement.innerText = "this is an element";
console.warn(container.querySelector("LABEL")); //<--- Works
console.warn(container.querySelector('LABEL[innerText="this is an element"]')); //<--- Doesn't work
return labelElement;

推荐答案

您遇到的问题是您试图 Select 的属性.querySelector方法不会将innerText识别为可供 Select 的有效属性.它是元素的属性,但不是可以在css Select 器中使用的属性.如果您希望根据元素的文本内容 Select 元素,则需要使用不同的方法,例如迭代元素并判断其innerText属性.

试着像这样使用代码...

function findElementWithText(container, text) {
    let labels = container.querySelectorAll("label");
    for(let i = 0; i < labels.length; i++) {
        if(labels[i].innerText === text) {
            return labels[i];
        }
    }
    return null;
}

console.warn(findElementWithText(container, "this is an element"));
enter code here

Javascript相关问答推荐

如何为GrapesJS模板编辑器创建自定义撤销/重复按钮?

过滤对象数组并动态将属性放入新数组

将本机导航路由react 到导航栏中未列出的屏幕?

更改JSON中使用AJAX返回的图像的路径

使用JQuery单击元素从新弹出窗口获取值

变量的值在Reaction组件中的Try-Catch语句之外丢失

VUE 3捕获错误并呈现另一个组件

禁用.js文件扩展名并从目录导入隐式根index.js时,找不到NodeJS导入模块

当输入字段无效时,我的应用程序不会返回错误

为什么这个.add.group({})在教程中运行得很好,但在我的游戏中就不行了?

当我try 将值更改为True时,按钮不会锁定

为什么当我更新数据库时,我的所有组件都重新呈现?

每次重新呈现时调用useState initialValue函数

将范围 Select 器添加到HighChart面积图

如何在独立的Angular 应用程序中添加Lucide-Angel?

select 2-删除js插入的项目将其保留为选项

在使用JavaScript以HTML格式显示Google Drive中的图像时遇到问题

由于http.get,*ngIf的延迟很大

如何在单击链接时设置一个JavaScript变量(以打开弹出窗口的特定部分)

单击子按钮时将活动切换类添加到父分区