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 option删除代码集合
Nov 12 Javascript
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
Mar 05 Javascript
纯JavaScript实现的完美渐变弹出层效果代码
Apr 02 Javascript
javascript 子窗体父窗体相互传值方法
May 31 Javascript
关于js中for in的缺陷浅析
Dec 02 Javascript
简单实现轮播图效果的实例
Jul 15 Javascript
Vue.js 2.5新特性介绍(推荐)
Oct 24 Javascript
详解Chai.js断言库API中文文档
Jan 31 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
Aug 30 Javascript
小程序server请求微信服务器超时的解决方法
May 21 Javascript
JS实现图片幻灯片效果代码实例
May 21 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
Jul 28 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
在MongoDB中模拟Auto Increment的php代码
2011/03/06 PHP
深入php self与$this的详解
2013/06/08 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
2013/06/28 PHP
ThinkPHP查询返回简单字段数组的方法
2014/08/25 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
JS定时刷新页面及跳转页面的方法
2013/07/04 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
jQuery实现鼠标可拖动调整表格列宽度
2014/05/26 Javascript
js HTML5手机刮刮乐代码
2020/09/29 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
前端面试知识点锦集(JavaScript篇)
2016/12/28 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
2020/05/25 Javascript
[40:03]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
完美解决Python 2.7不能正常使用pip install的问题
2018/06/12 Python
Centos下实现安装Python3.6和Python2共存
2018/08/15 Python
浅谈Pandas:Series和DataFrame间的算术元素
2018/12/22 Python
python 通过可变参数计算n个数的乘积方法
2019/06/13 Python
基于python实现雪花算法过程详解
2019/11/16 Python
Python高级property属性用法实例分析
2019/11/19 Python
python利用os模块编写文件复制功能——copy()函数用法
2020/07/13 Python
利用python清除移动硬盘中的临时文件
2020/10/28 Python
英国天然保健品网站:Simply Supplements
2017/03/22 全球购物
法律专业自我鉴定
2013/10/03 职场文书
运动会通讯稿300字
2014/02/02 职场文书
小班下学期评语
2014/05/04 职场文书
节约能源标语
2014/06/17 职场文书
党员群众路线学习心得体会
2014/11/04 职场文书
商务司机岗位职责
2015/04/10 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP
html css3不拉伸图片显示效果
2021/06/07 HTML / CSS
通过Python把学姐照片做成拼图游戏
2022/02/15 Python
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers