javascript - 在 querySelectorAll() 中插入变量不起作用

标签 javascript variables selectors-api uncaught-exception

我创建了一个 for 循环来为数组中的多个元素执行一些代码。这个for循环中有一个querySelectorAll(),但由于querySelectorAll()需要在每个循环中处理不同的元素,我尝试在其中插入一个变量,但这给了我一个错误。当我将该变量的确切输出直接放入 querySelectorAll() 时,它确实有效。有谁知道如何解决这个问题吗?

(1) 这是有效时的代码,但正如我所说,实际的 className 需要更改。这就是为什么我想插入一个变量。

var tipSelectors0 = document.querySelectorAll(".tipContainer0 .pageContent-exercise-help-model-tip-select-container-li");

(2)这是无效的代码。但正如您在评论和控制台中看到的那样。变量输出与我在代码(1)中输入的内容完全相同。

    Line637 var tipContainerClassName = "tipContainer" + j; //j = 0
    Line638 var newClassName ='".' + tipContainerClassName + ' .pageContent-exercise-help-model-tip-select-container-li"';
    Line639 console.log(newClassName); //Outputs:   ".tipContainer0 .pageContent-exercise-help-model-tip-select-container-li"
    Line640 var tipSelectors0 = document.querySelectorAll(newClassName);

(3) 这是我使用代码 (2) 在控制台中收到的错误

".tipContainer0 .pageContent-exercise-help-model-tip-select-container-li" Leerstof.html:639
Uncaught DOMException: Failed to execute 'querySelectorAll' on 'Document': '".tipContainer0 .pageContent-exercise-help-model-tip-select-container-li"' is not a valid selector. Leerstof.html:640

谢谢!

最佳答案

无需在选择器本身中使用引号。您只需删除双引号即可:

'.' + tipContainerClassName + ' .pageContent-exercise-help-model-tip-select-container-li'

关于javascript - 在 querySelectorAll() 中插入变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52238982/

相关文章:

java - ToString 和输出问题

javascript - 将可见类切换为触发元素旁边的 Div(纯 JS)

javascript - querySelectorAll - 获取所有具有属性集的标签?

javascript - 如何在 slider 中的图像之间转换

javascript - 空字段默认为 "0"

javascript - 在 D3 JS 中显示半圆环饼图的值

jquery - 更改字符串

javascript - 将 ng-model 指令和值属性与文本框的相同属性绑定(bind)在一起,使中文字符被删除

c++ - static 关键字在 C/C++ 和存储级别上有作用吗?

javascript - querySelectorAll 的选择器不一致