Avatar ·

如何使用jQuery检查页面中是否存在元素?

大家好!我刚开始学习jQuery,遇到了一个问题。我的代码应该隐藏带有类名 `.my-block` 的元素,但如果页面中没有这个元素,控制台就会报错。 这是我的代码: ```javascript $('.my-block').hide(); ``` 当元素不存在时,一切都会崩溃。我尝试这样写: ```javascript if ($('.my-block')) { $('.my-block').hide(); } ``` 但这不起作用,因为 `$('.my-block')` 总是返回一个 truthy 值,即使没有元素。我读到在jQuery中需要检查集合的长度,但不确定如何正确操作。 请告诉我,在执行某些操作之前,如何正确检查页面中是否存在元素?我特别想知道jQuery的方法,而不是纯JavaScript。 谢谢! <<>>

在jQuery中检查元素是否存在的正确方法

您完全正确——$('.my-block') 总是返回一个jQuery对象,即使没有匹配的元素。要检查元素是否存在,您需要检查该对象的 .length 属性:

if ($('.my-block').length) {
    $('.my-block').hide();
}

或者更简洁的写法:

var $element = $('.my-block');
if ($element.length) {
    $element.hide();
}

这样,只有当至少有一个匹配的元素时,才会执行 hide() 方法,从而避免错误。