$(" #myElement")。长度与!! $(" myElement")检查dom元素是否存在?

时间:2017-03-09 17:17:30

标签: javascript jquery html dom

我需要检查某个dom元素是否存在。我看到其他帖子建议length属性来检查。这很好。但即使没有length属性,它也能正常工作。例如:

!!$("#myElement");        // true
!!$("#myElement").length; // true

两种方式都返回相同的值。那么可以不使用length属性来检查元素是否存在吗?

1 个答案:

答案 0 :(得分:0)

不,总是使用length

这里的逻辑是有缺陷的,因为jQuery对象永远不会为空或null,它总是返回一个对象,即使没有选择任何元素,因此你无法可靠地将它强制转换为布尔值,以查看选择器是否匹配任何元素。



console.log(!!$('#exists')); // should be true
console.log(!!$('#doesNotExist')); // should be false

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="exists"></div>
&#13;
&#13;
&#13;

如上所示,两个测试都返回true