未能在“文档”上执行“querySelectorAll”:在javascript中?
我试图在javascript中转换以下行,但出现以下错误 错误: 未能对“文档”:“执行'querySelectorAll'。通常是li[aria selected!='true'] Jquery代码 javascript未能在“文档”上执行“querySelectorAll”:在javascript中?,javascript,jquery,Javascript,Jquery,我试图在javascript中转换以下行,但出现以下错误 错误: 未能对“文档”:“执行'querySelectorAll'。通常是li[aria selected!='true'] Jquery代码 javascript 您可以将命令拆分为2-3行,以便轻松调试 const element=document.queryselectoral.usuggest li[aria selected!='true'] //您可以在此处检查元素的值0f:console.logelement 元素[0]。s
您可以将命令拆分为2-3行,以便轻松调试 const element=document.queryselectoral.usuggest li[aria selected!='true'] //您可以在此处检查元素的值0f:console.logelement 元素[0]。setAttribute'aria-selected','true' 如果这也会导致错误,请使用console.logelement的输出进行回复 处的引用提到您传递的选择器必须是有效的CSS选择器。事实上,如果查看代码生成的完整错误,它会给出以下信息:
Uncaught DOMException: Failed to execute 'querySelectorAll' on 'Document': '.usuggest li[aria-selected!='true']' is not a valid selector.
告诉我们选择器有问题
移动到的CSS选择器和属性选择器,我们看到要选择属性,!=不是有效的运算符。从中我们可以看出,我们需要在前面加上:不应用逆运算,然后进行等式检查
这为我们提供了以下更新的JavaScript
document.queryselectoral.usuggest li:不是[aria selected='true']
它应该做你想做的
这将生成整个查询:
document.queryselectoral.usuggest li:不是[aria selected='true'][0]。setAttribute'aria-selected','true';
由于querySelectorAll可能不会返回结果,我建议执行以下操作:
Uncaught DOMException: Failed to execute 'querySelectorAll' on 'Document': '.usuggest li[aria-selected!='true']' is not a valid selector.
const falseListItems=document.querySelectorAll.usuggest li:not[aria selected='true'];
如果falseListItems.length>0{
falseListItems[0]。setAttribute'aria-selected','true';
}
如果您可以保证查询将导致单个结果,那么当然不需要额外的If语句。阅读完整的错误消息,最重要的是,在将其发布到此处之前,您将发现问题:'.usuggest li[aria selected!='true']'不是有效的选择器,@mplungjan选择器在与jQuery一起使用时不是无效的,如dupe目标或此处所述:@Andreas Wow。我不知道也不会使用它:我想将jquery行转换为javascript@user944513然后做一些研究,阅读答案或dupe目标。@user944513我相信答案以前做过,并解释了您的问题,但是我已经更新了它,使其更清楚
Uncaught DOMException: Failed to execute 'querySelectorAll' on 'Document': '.usuggest li[aria-selected!='true']' is not a valid selector.