在 document.querySelector 中检查选择器时如何防止未捕获的 DOMException

How to prevent Uncaught DOMException when checking selector in document.querySelector

在 JavaScript 我有这样的代码:

var text = '[0-9]';
if (document.querySelector(text) !== null) {
alert('fail');
}

我在运行的时候,出现错误:

Uncaught DOMException: Failed to execute 'querySelector' on 'Document': '[0-9]' is not a valid selector.

请问如何在没有这个错误的情况下检查querySelector是否有效?

我希望能够将任何内容写入变量“文本”,并且我希望代码在选择器无效时发出“失败”警报。没有那个错误,无论“文本”包含什么变量。

您可以使用try...catch来防止错误

let text = '[0-9]';
if (getQuerySelector(text) !== null) {
    alert('fail');
}

function getQuerySelector(txt){
  try {
    return document.querySelector(txt);
  } 
  catch(e) {
    return null;
  }
}