我有一些带有部分 View 的 div。为什么对不存在的 div 的引用不会显示某种错误?例如,我现在只有一个taskN div:
<div id="task1">
@Html.Partial("~/Views/PartialViews/TaskDosCommand.cshtml")
</div>
这是我用来显示 div 的 jQuery:
$('#task' + task.PrestoTaskType).show();
当task.PrestoTaskType
为1时,task1 div正确显示。但是,当 task.PrestoTaskType
不是 1(例如 2)时,则不会显示任何内容(这很好),但不会出现错误;网页上没有显示任何错误,Chrome 开发者工具控制台中也没有显示任何内容:
访问不存在的 DOM 元素时是否应该显示某种错误?
最佳答案
不,因为 jQuery 所做的是 .show()
jQuery 对象包装的所有元素。如果根本没有元素,那就这样吧。
这正是 jQuery 类似 monad 的方面,这使得它如此有用:想象一下,如果事情不能那样工作,您必须编写代码:
var $whatever = $(...);
if ($whatever.length) $.doSomething();
这简直更糟糕:您需要引入一个变量(为了避免浪费)和一个条件...到底可以获得什么 yield ?
如果您想要查看 jQuery 匹配的内容,您可以使用上面的 .length
轻松实现,也许还可以使用 .filter
过程。
关于javascript - 为什么访问不存在的 DOM 元素时没有错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19210035/