我在离子1 / angularjs cordova应用程序中收到以下错误。 无法执行' querySelector'在'文件':'#04'不是有效的选择器。
我在html中动态构建id,然后在我的控制器中获取所选的id。
<label id="{{levelIndex}}0" class="{level-selected:false}">{{vm.config.tones[0]}}</label>
我的目标是只为所选项目分配一个类。
vm.selectLevelTone = function (level, tone) {
var selection = JSON.parse(localStorage.getItem('hairSelection')) || {};
selection.starting = {
level: level,
tone: tone
}
localStorage.setItem('hairSelection', JSON.stringify(selection));
vm.selectedStartLevel = config.levels[level];
vm.selectedStartTone = config.toneDesc[tone];
var levelTone = '#' + level + tone;
var note = angular.element(document.querySelector(levelTone));
note.addClass('level-selected');
$state.go('level-ending', { cId: $stateParams.cId });
};
我尝试按ID使用get元素,但这也不起作用。
根据这篇文章Using querySelector with IDs that are numbers,我需要逃避这个数字。我试图使用&#34; \&#34;来构建我的id。 +级别但我在转义字符上收到错误。
我最终使用以下内容获取元素。
var levelTone = '#' + level + tone;
在第一行中,我将#添加到我的音高+音调,以便整数将附加,而不是添加
在第二行,我删除#符号(我知道必须有一个更简单的方法,只是不知道它是什么。)
在第3行,我接受了菲尔的建议并使用&#39; [id =&#34;&#39; + res +&#39;&#34;]&#39;
现在我在note.addclass行上收到错误。
var res = levelTone.substring(1, levelTone.length);
var note = document.querySelector('[id="' + res + '"]')