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设置FieldSet展开与收缩
May 15 Javascript
用AJAX返回HTML片段中的JavaScript脚本
Jan 04 Javascript
jQuery实现下滑菜单导航效果代码
Aug 25 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
Jun 12 Javascript
Express下采用bcryptjs进行密码加密的方法
Feb 07 Javascript
JavaScript如何对图片进行黑白化
Apr 10 Javascript
Vue2.0 实现移动端图片上传功能
May 30 Javascript
搭建基于express框架运行环境的方法步骤
Nov 15 Javascript
示例vue 的keep-alive缓存功能的实现
Dec 13 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
Apr 17 Javascript
基于layui的下拉列表的数据回显方法
Sep 24 Javascript
vue下axios拦截器token刷新机制的实例代码
Jan 17 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
咖啡知识大全
2021/03/03 新手入门
PHP iconv 函数转gb2312的bug解决方法
2009/10/11 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
php递归删除目录下的文件但保留的实例分享
2014/05/10 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
use jscript Create a SQL Server database
2007/06/16 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
HTML上传控件取消选择
2013/03/06 Javascript
JS实现横向与竖向两个选项卡Tab联动的方法
2015/09/27 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
2015/11/21 Javascript
js调出上下文菜单的实例
2015/12/17 Javascript
详解Jquery实现ready和bind事件
2016/04/14 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
详解node.js中的npm和webpack配置方法
2018/01/21 Javascript
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
在Python中用has_key()方法查找键是否存在的教程
2015/05/21 Python
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
transform python环境快速配置方法
2018/09/27 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
python版百度语音识别功能
2019/07/09 Python
python实现抠图给证件照换背景源码
2019/08/20 Python
澳大利亚香水在线商店:City Perfume
2020/09/02 全球购物
应届医学毕业生求职信分享
2013/12/02 职场文书
上级检查欢迎词
2014/01/18 职场文书
最美护士演讲稿
2014/08/27 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server
详解Java分布式事务的 6 种解决方案
2021/06/26 Java/Android