我最近编写了一个小脚本,对无序列表进行了简单的显示/隐藏操作。
据我了解,jQuery 只会在有问题的元素存在时执行一个函数(因此如果它是“真”)。所以没有实际的理由去检查元素的长度是否大于 0,它是否有一个父节点是 body 等等。正确的?
如果以上是准确的,那么这种检查实际上何时会有所帮助?
我最近编写了一个小脚本,对无序列表进行了简单的显示/隐藏操作。
据我了解,jQuery 只会在有问题的元素存在时执行一个函数(因此如果它是“真”)。所以没有实际的理由去检查元素的长度是否大于 0,它是否有一个父节点是 body 等等。正确的?
如果以上是准确的,那么这种检查实际上何时会有所帮助?
没错,jQuery 只会尝试调用的方法(如果它存在)。
但是使用:
if($("#someElement").length) { ... Do Stuff };
如果您正在混合使用 jQuery 和 JavaScript,这将非常有用 - 我发现您通常无法使用 jQuery 实现所有功能,并且如果您尝试对不存在的对象进行 JavaScript 操作,则会出现脚本错误。
例如,我希望从“帐单地址”复制“送货地址” - 但如果产品可发货(下载的产品不需要送货),我的页面只会呈现“送货地址” - 所以我检查“送货地址”是否存在在我在 jQuery 中做任何进一步的工作之前。
这只是一个粗略的例子,我很感激你也不能渲染 jQuery 按钮 - 也就是说,如果你有一个中央.js
文件,它更相关,因为你可能有一些更通用的 JS 将尝试在每个页面上运行.
所以那是我检查存在的对象的时候。
如果您想要执行的操作在元素不存在的情况下可能会级联成错误,那么首先进行检查会很有帮助。一些相当琐碎的事情(如显示/隐藏)可能不需要检查。
(尽管确保一切按预期工作并优雅地失败是一种很好的编程习惯。检查会对此有所帮助,或者至少是 try...catch 语句。)
这取决于元素实际存在对您/您的脚本有多重要。假设您的脚本的其余部分取决于您需要从元素中检索的一些数据,而该元素不存在,您会想了解它并对其采取行动。在这种情况下,检查显然非常有用。
在简单的显示/隐藏的情况下,对此的需求可能很小。
这里的长度属性将返回已被选择的元素的数量$('#id')
。如果它返回零,则表示没有匹配或选择的项目。
<script>
$(document).ready(function () {
alert($('#id').length);
});
</script>