最近使用了一些类似
的代码$("#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/