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弹窗代码 可以指定弹出间隔
Jul 03 Javascript
jQuery EasyUI API 中文文档 - ProgressBar 进度条
Sep 29 Javascript
JS在textarea光标处插入文本的小例子
Mar 22 Javascript
基于JavaScript 下namespace 功能的简单分析
Jul 05 Javascript
jquery实现可拖拽弹出层特效
Jan 04 Javascript
angularjs学习笔记之完整的项目结构
Sep 26 Javascript
详解Angular中$cacheFactory缓存的使用
Aug 19 Javascript
jQuery事件用法详解
Oct 06 Javascript
AngularJS路由实现页面跳转实例
Mar 03 Javascript
js实现倒计时效果(小于10补零)
Mar 08 Javascript
Vue动态控制input的disabled属性的方法
Jun 26 Javascript
微信小程序实现折线图的示例代码
Jun 07 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
第四节--构造函数和析构函数
2006/11/16 PHP
PHP和XSS跨站攻击的防范
2007/04/17 PHP
PHP文件读写操作之文件读取方法详解
2011/01/13 PHP
基于php权限分配的实现代码
2013/04/28 PHP
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
新手入门常用代码集锦
2007/01/11 Javascript
jquery.ui.draggable中文文档
2009/11/24 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
Express系列之multer上传的使用
2017/10/27 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
python 简单备份文件脚本v1.0的实例
2017/11/06 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
Django forms组件的使用教程
2018/10/08 Python
Python画图实现同一结点多个柱状图的示例
2019/07/07 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
基于HTML5的WebSocket的实例代码
2018/08/15 HTML / CSS
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
师范毕业生自荐信
2013/10/17 职场文书
办公室内勤工作职责
2013/12/11 职场文书
青年志愿者服务活动总结
2015/05/06 职场文书
学习经验交流会策划书
2015/11/02 职场文书
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers