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 相关文章推荐
jQuery 在光标定位的地方插入文字的插件
May 10 Javascript
javascript 闭包详解
Jul 02 Javascript
Angular Module声明和获取重载实例代码
Sep 14 Javascript
微信小程序 教程之WXSS
Oct 18 Javascript
Bootstrap table使用方法总结
May 10 Javascript
Axios学习笔记之使用方法教程
Jul 21 Javascript
es6数值的扩展方法
Mar 11 Javascript
浅谈layui里的上传控件问题
Sep 26 Javascript
vue中的v-model原理,与组件自定义v-model详解
Aug 04 Javascript
vue-cli3中配置alias和打包加hash值操作
Sep 04 Javascript
JSONObject与JSONArray使用方法解析
Sep 28 Javascript
Vue.js中v-bind指令的用法介绍
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
php约瑟夫问题解决关于处死犯人的算法
2015/03/23 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
基于jquery扩展漂亮的下拉框可以二次修改
2013/11/19 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
浅谈node模块与npm包管理工具
2018/01/03 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
使用zrender.js绘制体温单效果
2019/10/31 Javascript
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
Python批量修改文本文件内容的方法
2016/04/29 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
python 读文件,然后转化为矩阵的实例
2018/04/23 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
Python配置虚拟环境图文步骤
2019/05/20 Python
解决pandas展示数据输出时列名不能对齐的问题
2019/11/18 Python
css3边框_动力节点Java学院整理
2017/07/11 HTML / CSS
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
Cole Haan官方网站:美国时尚潮流品牌
2017/12/06 全球购物
英国领先的露营和露营车品牌之一:OLPRO
2019/08/06 全球购物
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
营销与策划个人求职信
2013/09/22 职场文书
计算机专业推荐信范文
2013/11/20 职场文书
留学推荐信范文
2014/05/10 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
运动会主持人开幕词
2016/03/04 职场文书
Vue和Flask通信的实现
2021/05/19 Vue.js
Pygame Draw绘图函数的具体使用
2021/11/17 Python