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 相关文章推荐
漂亮的仿flash菜单,来自蓝色经典
Jun 26 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
Nov 08 Javascript
JS数组去重与取重的示例代码
Jan 24 Javascript
jquery实现弹出层完美居中效果
Mar 03 Javascript
浅谈JavaScript正则表达式分组匹配
Apr 10 Javascript
JavaScript的instanceof运算符学习教程
Jun 08 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
Oct 10 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
Nov 04 Javascript
vue + socket.io实现一个简易聊天室示例代码
Mar 06 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
May 10 Javascript
node结合swig渲染摸板的方法
Apr 11 Javascript
JS绘图Flot如何实现动态可刷新曲线图
Oct 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
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
2012/04/09 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
php header函数的常用http头设置
2015/06/25 PHP
node.js中的fs.existsSync方法使用说明
2014/12/17 Javascript
javascript折半查找详解
2015/01/26 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
node跨域请求方法小结
2017/08/25 Javascript
JS内部事件机制之单线程原理
2018/07/02 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
详解基于原生JS验证表单组件xy-form
2019/08/20 Javascript
通过layer实现可输入的模态框的例子
2019/09/27 Javascript
JavaScript设计模式之策略模式实现原理详解
2020/05/29 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
JavaScript中layim之整合右键菜单的示例代码
2021/02/06 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
Python 实现随机数详解及实例代码
2017/04/15 Python
Python处理CSV与List的转换方法
2018/04/19 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
python获取当前文件路径以及父文件路径的方法
2019/07/10 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
Html5 FileReader实现即时上传图片功能实例代码
2014/09/01 HTML / CSS
FOREO官方网站:LUNA露娜洁面仪
2016/11/28 全球购物
急诊科护士自我鉴定
2013/10/14 职场文书
优秀士兵先进事迹
2014/02/06 职场文书
工会工作个人总结
2015/03/03 职场文书
2015年技术工作总结范文
2015/04/20 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
React中的Context应用场景分析
2021/06/11 Javascript
Python办公自动化解决world文件批量转换
2021/09/15 Python
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL