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 相关文章推荐
JavaScript 获取事件对象的注意点
Jul 29 Javascript
jQuery 表单验证扩展(四)
Oct 20 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
Nov 06 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
Jun 07 Javascript
使用JavaScript 实现的人脸检测
Mar 24 Javascript
JS中对象与字符串的互相转换详解
May 20 Javascript
通过button将form表单的数据提交到action层的实例
Sep 08 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
Oct 25 Javascript
Vue隐藏显示、只读实例代码
Jul 18 Javascript
js+cavans实现图片滑块验证
Sep 29 Javascript
js 数组 fill() 填充方法
Nov 02 Javascript
Vue.js中v-for指令的用法介绍
Mar 13 Vue.js
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
用JS实现的一个include函数
2007/07/21 Javascript
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
JavaScript使用Prototype实现面向对象的方法
2015/04/14 Javascript
深入理解requestAnimationFrame的动画循环
2016/09/20 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
ES6中的rest参数与扩展运算符详解
2017/07/18 Javascript
React-router v4 路由配置方法小结
2017/08/08 Javascript
Vue程序调试的方法
2019/06/17 Javascript
开发中常用的25个JavaScript单行代码(小结)
2019/06/28 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
vue项目中使用rem,在入口文件添加内容操作
2020/11/11 Javascript
在Python的while循环中使用else以及循环嵌套的用法
2015/10/14 Python
Python利用BeautifulSoup解析Html的方法示例
2017/07/30 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
2018/03/15 Python
python 列表,数组和矩阵sum的用法及区别介绍
2018/06/28 Python
python ---lambda匿名函数介绍
2019/03/13 Python
详解python-图像处理(映射变换)
2019/03/22 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
Python 70行代码实现简单算式计算器解析
2019/08/30 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
推荐WEB开发者最佳HTML5和CSS3代码生成器
2015/11/24 HTML / CSS
新书吧创业计划书
2014/01/31 职场文书
市场部管理制度
2014/02/02 职场文书
农村面貌改造提升实施方案
2014/03/18 职场文书
会计专业个人自我鉴定
2014/03/21 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
教师工作失职检讨书
2014/09/18 职场文书
优秀党支部申报材料
2014/12/24 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
庆七一晚会主持词
2015/06/30 职场文书
详解MySQL的内连接和外连接
2023/05/08 MySQL