jquery 隐式迭代

Jquery对象本质可以看成是一个包含一个 dom数组和所有Jquery方法的容器(补充:方法在所有jq对象共享的jq原型属性prototype中)。

要使用Jquery,就必须将dom元素转成 Jquery对象,然后才能调用JQ对象的 便捷方法。

1 //所有 div 内部设置一个 span 标签
2 var $divs = $("div");
3 $divs.html("<span>广州小蛮腰</span>");

每当我们调用选择器方法查找dom树里的元素时,其实就是把找到的dom元素存入一个JQ对象里的dom数组中,然后再把这个JQ对象返回。

当我们调用Jquery方法时(如 html()),jq方法会遍历内部 dom数组,并调用每个dom元素的对应的dom属性或方法(如innerHTML),完成操作。

其中Jq方法遍历内部dom数组的过程就叫做【隐式迭代】。

【图例】

补充:每个Jq对象的方法都是从 Jquery函数的 prototype 中共享。


如何判断对象是否存在,jquery选择器返回的是一个对象数组,调用text(),html(),click()之类的方法的时候其实是对数组中每个元素迭代调用每个方法,因此即使通过id选择的元素不存在也不会报错,如果需要判断制定的id不存在,应该写:

if($("#btn1").length <= 0){

         alert("id为btn1的元素不存在!");

}


$('.className') 这其实是一个数组集合,并不是直接的DOM元素

所以像 $('.className').addClass('newClass'),执行的其实是类似这样的语句

$('.className').each(function() {
$(this).addClass('newClass');
});

还有一些例子,比如

$('.notExistClass').addClass('newClass');
即使没有符合$('.notExistClass')条件的DOM元素,jQuery同样也不会报错。






  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值