gpt4 book ai didi

javascript - 有没有办法验证 Sizzle 选择器?

转载 作者:数据小太阳 更新时间:2023-10-29 06:08:38 26 4
gpt4 key购买 nike

有没有办法在不运行 Sizzle 选择器的情况下验证(验证其构造是否正确)?

最佳答案

好吧,正如 Russ 所说,由于 Sizzle 解释了选择器,所以它无法在不评估它的情况下对其进行验证。

但是,您可以捕获 Sizzle 抛出的异常以确定选择器是否有效:

function isSelectorValid(selector)
{
try {
$(selector);
} catch (x) {
return false;
}
return true;
}

您可以测试此解决方案 here .


编辑:为了历史起见,我原来的(过度设计的)答案是:

但是,可以暂时覆盖 Sizzle 的错误管理,以便从其最后一次解析操作的错误状态中提取 bool 值。以下解决方案利用了 jQuery 通过 $.find(到目前为止)公开 Sizzle 的事实:

function isSelectorValid(selector)
{
var oldErrorMethod = $.find.error;
try {
$.find.error = function(msg) {
valid = false;
oldErrorMethod(msg);
};
$(selector);
return true;
} catch (x) {
return false;
} finally {
$.find.error = oldErrorMethod;
}
}

这可以说是一个可怕的 hack,但它有效:你可以测试它 here .

关于javascript - 有没有办法验证 Sizzle 选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5952853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com