JQuery Tips(2) 关于$()包装集你不知道的


Posted in Javascript onDecember 14, 2009

我想这个理解起来很简单,被$()包装的JQuery对象总是以集合的形式出现.就算包装集中只有一个对象.

<div id="a"></div> 
<div id="b"></div> 
<script type="text/javascript"> 
$("div").html("hi"); </script>

上面被选择的两个DIV的内容都会被改变为”hi”
包装集内元素的顺序
在被JQuery包装的元素中,包装集中所包含的内部顺序是按照HTML流从先向后排列的,而不是选择顺序:
<div id="a">here is a</div> 
<div id="b">here is b</div> 
<script type="text/javascript"> 
var Se = $("#b,#a"); 
alert(Se.get(0).innerHTML); 
alert(Se.get(1).innerHTML); </script>

上面代码可以看到,虽然是b先被选择,但是在执行alert的时候会先弹出”here is a”继而是“here is b”
JQuery对象和DOM的转化
首先,是DOM转化成JQuery对象,这个很容易,只需包含在$()里面即可.但有一点注意的是,再被JQuery包装的元素的事件内,this总是指向当前对象:
<div id="a">here is a</div> 
<div id="b">here is b</div> 
<script type="text/javascript"> 
$("div").click(function() { 
alert(this.id);//this Ö¸Ïòµ±Ç°µÄDOM 
}); </script>

将JQuery包装集中的元素转为DOM对于JQuery来说也是很简单的事,大多数情况都使用JQuery的get方法
<div id="a">here is a</div> 
<div id="b">here is b</div> 
<script type="text/javascript"> 
var Jq = $("div"); 
alert(Jq.get(0).id); //alert "a" 
alert(Jq.get()[0].id); //alert "a" as well 
alert(Jq[0].id);//alert "a" 
</script>

从面可以看出,通过get方法加索引作为参数,会返回索引值的DOM对象,而不加参数会返回JQuery包装集中的整个数组
还有一种简便方法是直接在JQuery包装集后面加数组符号,可以把上面的Jq[0]看做Jq.get(0)的简便方式:-)
检查当前JQuery包装集中的元素个数
在很多时候,需要检查在JQuery包装集中的元素个数,我们可以直接通过包装集的length属性(这个属性在VS当中是不提示的)
div id="a">here is a</div> 
<div id="b">here is b</div> 
<script type="text/javascript"> 
var Jq = $("div"); 
alert($("Div").length);//alert "2" 
</script>

这个属性还可以直接用于检测当前的包装集是否为空
<div id="a">here is a</div> 
<div id="b">here is b</div> 
<script type="text/javascript"> 
if ($("div").length) { 
alert("Not Empty"); 
} 
if ($("div").get(0)) { 
alert("Not Empty"); 
} 
</script>

上面两个alert都会被执行,第二个方式通过检测当前包装集中第一个元素是否为空来确定包装集为空.
包装集在某些特定情况下也“不总是面向集合”
刚才不是号称总是面向集合吗,咋又变了?其实的确是面向集合,但在使用JQuery的某些方法进行提取时,就不是这样了,比如下面代码:
<div id="a" >here is a</div> 
<div id="b">here is b</div> 
<script type="text/javascript"> 
alert($("div").attr("id")); 
</script>

上面代码只会alert第一个div的id.那在这种情况下咋办呢?对,用JQuery的Each方法,each方法会遍历包装集中的每一个元素:
<div id="a" >here is a</div> 
<div id="b">here is b</div> 
<script type="text/javascript"> 
$("div").each(function() { 
alert($(this).attr("id")); 
}); 
</script>

上面代码会执行两个alert:-)
Javascript 相关文章推荐
ExtJs3.0中Store添加 baseParams 的Bug
Mar 10 Javascript
js中判断文本框是否为空的两种方法
Jul 31 Javascript
获取数组中最大最小值方法js代码(自写)
Aug 12 Javascript
了解了这些才能开始发挥jQuery的威力
Oct 10 Javascript
详解JavaScript中undefined与null的区别
Mar 29 Javascript
ExtJS4 表格的嵌套 rowExpander应用
May 02 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
Dec 23 Javascript
基于JavaScript实现报警器提示音效果
Oct 27 Javascript
浅谈webpack打包之后的文件过大的解决方法
Mar 07 Javascript
基于angular6.0实现的一个组件懒加载功能示例
Apr 12 Javascript
js中let能否完全替代IIFE
Jun 15 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
Jul 16 Javascript
js 页面传参数时 参数值含特殊字符的问题
Dec 13 #Javascript
JQuery下关于$.Ready()的分析
Dec 13 #Javascript
javascript与asp.net(c#)互相调用方法
Dec 13 #Javascript
JavaScript 字符串与数组转换函数[不用split与join]
Dec 13 #Javascript
jQuery 行背景颜色的交替显示(隔行变色)实现代码
Dec 13 #Javascript
页面中iframe相互传值传参
Dec 13 #Javascript
jquery提示 &quot;object expected&quot;的解决方法
Dec 13 #Javascript
You might like
用PHP实现验证码功能
2006/10/09 PHP
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
PHP源代码数组统计count分析
2011/08/02 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
JQuery UI皮肤定制
2009/07/27 Javascript
js 多种变量定义(对象直接量,数组直接量和函数直接量)
2010/05/24 Javascript
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
2010/07/11 Javascript
Wordpress ThickBox 添加“查看原图”效果代码
2010/12/11 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
javascript模拟实现ajax加载框实例
2014/10/15 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
关于动态执行代码(js的Eval)实例详解
2016/08/15 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
[09:37]DOTA2卡尔工作室 英雄介绍圣堂刺客篇
2013/06/13 DOTA
[03:43]2014DOTA2西雅图国际邀请赛 newbee战队巡礼
2014/07/07 DOTA
[14:50]2018DOTA2亚洲邀请赛开幕式
2018/04/03 DOTA
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
使用Python下载Bing图片(代码)
2013/11/07 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
Python中反射和描述器总结
2018/09/23 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
python微信撤回监测代码
2019/04/29 Python
python通过TimedRotatingFileHandler按时间切割日志
2019/07/17 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
高中历史教学反思
2014/02/08 职场文书
大课间活动实施方案
2014/03/06 职场文书
酒后驾车标语
2014/06/30 职场文书
上班迟到检讨书
2014/09/15 职场文书
刑事附带民事起诉状
2015/05/19 职场文书