使用变量作为id的'querySelectorAll'上的无效选择器

时间:2018-07-23 22:55:01

标签: javascript

我有一个已通过变量传递的动态ID。不幸的是,当尝试将其引用到querySelectorAll中时,出现错误:

Failed to execute 'querySelectorAll' on 'Document':'#paragraph-1 .is-available"' is not a valid selector.

我的代码在下面

var x = ('"#' + dataID + ' is-available"');
var test = document.querySelectorAll (x);
console.log(test);

当我查看控制台日志时,它会将其正确输出到:

#paragraph-1 .is-available

关于如何将变量引用到querySelectorAll中的任何想法?

1 个答案:

答案 0 :(得分:5)

两件事:

  1. 摆脱选择器中的双引号
  2. .的选择器中用is-available替换空白。

使用该选择器,您应该获得正确的结果:

document.querySelectorAll('#' + dataID + '.is-available');

更新:

不清楚是要选择具有指定ID的元素的所有子元素,还是要选择具有指定ID和类的所有元素。保留空白,如果要选择子元素,请将.添加到is-available。编写代码如下:

document.querySelectorAll('#' + dataID + ' .is-available');