Я сделал цикл 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.info(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'