javascript - 如果您的选择器对象无效,为什么 jQuery 不会轰炸?

标签 javascript jquery jquery-selectors

最近使用了一些类似

的代码
$("#divMenuContainer:visible").hide("explode");

然而,在尝试让它工作一段时间后,我意识到我的选择器引用了一个不存在的 div。

查询的结果只是没有执行。

显然这是设计使然,谁能解释为什么做出这种设计选择而不是引发某种异常的逻辑?

不是试图批评只是试图理解。

最佳答案

将其视为一个查询,它确实是。您要求所有符合您条件的“记录”(DOM 元素)。结果是一组零记录。

然后它遍历您的零记录并将操作应用于它们。 :)

如果您对 SQL 或数组执行相同的操作,那么它在大多数语言中的行为方式都是相同的。零记录的集合不是错误状态。

var things = $("invalid selector");
$("p").text("The object is valid: " + things + " but has " + things.length + " elements.")
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p></p>

关于javascript - 如果您的选择器对象无效,为什么 jQuery 不会轰炸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3709604/

相关文章:

javascript - 在设定的时间后从 DOM 中删除元素

JavaScript 扩展验证

jquery - 帮助 jQuery .next

javascript - 将 jQuery 元素保存到 var 会导致在使用时重新查找该元素吗?

javascript - Canvas 游戏中的图像闪烁

javascript - 隐藏表单上的 @ViewChild 返回未定义 - 如何访问它以便我可以设置焦点

javascript - Jquery 选择所有具有 $jquery.data() 的元素

jquery - jquery 1.8+ 中选择器失败

javascript - angularjs Controller 中的 Promise - 如何实现

jquery - 使用jquery从新添加的行触发ajax调用到现有表