【发布时间】:2017-03-09 17:17:30
【问题描述】:
我需要检查某个 dom 元素是否存在。我看到其他帖子建议length 属性来检查。这很好用。但即使没有 length 属性,它也可以工作。例如:
!!$("#myElement"); // true
!!$("#myElement").length; // true
两种方式都返回相同的值。那么不使用length属性检查元素是否存在可以吗?
【问题讨论】:
-
您是否考虑过使用您知道不存在的元素(即长度返回 0)来测试它?结果可能会让您大吃一惊。
-
在大多数代码中,我看到 if ($("#myElement").length) {},因为如果没有长度,那么它会评估为假,如果有长度,它会评估为真。
-
你得到了
$("#myElement")的误报,因为它不关心元素是否存在。 jQuery 将始终返回一个包含任何匹配元素的 jQuery 对象,因此请始终检查.length以查看其中是否实际存在元素。随意看看►https://learn.jquery.com/using-jquery-core/jquery-object/
标签: javascript jquery html dom