0

我想知道,是否有任何具体原因,为什么 jQuery 在找不到给定选择器的对象时不会抛出任何错误。

例如:

$("#content").css("color","re​​d");

在这里,没有 ID 为“内容”的元素,但它没有做任何事情,甚至是错误。

4

2 回答 2

6

jQuery 选择器用于在未找到匹配项时返回元素集合为零元素,这就是它的设计方式。您可以使用length属性来检查是否有元素

if($('yourselector').length)
{
    //You got one or more elements
}
else
{
   //You haven't got any element.
} 
于 2013-07-26T09:49:11.813 回答
2

定义

jQuery.fn.extend({
      notEmpty: function (atLeast) {
          const len = atLeast || 1;
          if (this.length < len)
              throw `unable to find ${len} element with selector : 
              '${this.selector}'. ${this.length} element is found.`;
          return this;
      }
  });

利用

let el = $(".at_least_one_element_selector").notEmpty();       
let el = $(".at_least_5_element_selector").notEmpty(5);
于 2017-07-01T08:16:35.173 回答