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 相关文章推荐
Js+Flash实现访问剪切板操作
Nov 20 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
Feb 12 Javascript
利用js实现禁止复制文本信息
Jun 03 Javascript
javascript实现连续赋值
Aug 10 Javascript
jquery实现漂亮的二级下拉菜单代码
Aug 26 Javascript
基于jquery animate操作css样式属性小结
Nov 27 Javascript
jquery对象访问是什么及使用方法介绍
May 03 Javascript
mui back 返回刷新页面的实例
Dec 06 Javascript
基于axios 解决跨域cookie丢失的问题
Sep 26 Javascript
Node.js中console.log()输出彩色字体的方法示例
Dec 01 Javascript
原生js实现无缝轮播图
Jan 11 Javascript
JavaScript canvas实现流星特效
May 20 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中var_export与var_dump的区别分析
2010/08/21 PHP
php输出xml格式字符串(用的这个)
2012/07/12 PHP
PHP中抽象类、接口的区别与选择分析
2016/03/29 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
PHP常用字符串函数用法实例总结
2020/06/04 PHP
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
JS隐藏参数post传值实例
2013/04/18 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
JS实现的竖向折叠菜单代码
2015/10/21 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
2019/08/12 Javascript
[51:10]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
Python编程中NotImplementedError的使用方法
2018/04/21 Python
CentOS 7 安装python3.7.1的方法及注意事项
2018/11/01 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
Python之Sklearn使用入门教程
2021/02/19 Python
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
企业治理工作自我评价
2013/09/26 职场文书
幼儿园保育员辞职信
2014/01/12 职场文书
校园安全检查制度
2014/02/03 职场文书
幼儿园消防演练方案
2014/02/13 职场文书
幼儿教师国培感言
2014/02/19 职场文书
教师工作总结范文2014
2014/11/10 职场文书
历史博物馆观后感
2015/06/05 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
Spring Boot 使用 Spring-Retry 进行重试框架
2022/04/24 Java/Android
JavaScript中10个Reduce常用场景技巧
2022/06/21 Javascript