标签:contex 通过 制造 obj col 框架 span 相互 个数
通过问题看本质:
举例:
js的写法:document.getElementById(‘save‘).disabled=true;
在jquery中我是这样写的
$("#save").disabled = true; //没有效果
分析:
其实因为$("#save")出来的其实是jQuery对象,而不是普通DOM对象
解决方法:
1)用JQ写法
$("#save").attr("disabled","true");
2)转成DOM写法
$("#save")[0].disabled=true; //当然,$("#save")[0]也可以写成$("#save").get(0)。他返回的也是DOM元素。 $("#save").eq(0)//得到的还是jq对象,$(dom对象)就能得到一个jq对象。
文档对象模型简称DOM,是W3C组织推荐的处理可扩展置标语言的标准编程接口。
1)概述
jQuery对象其实是一个JavaScript的数组,这个数组对象包含125个方法和4个属性
4个属性分别是:
jquery对象就是通过jQuery包装DOM对象后产生的对象。jQuery对象是jQuery独有的,
其可以使用jQuery里的方法,但是不能使用DOM的方法;反过来Dom对象也不能使用
jquery的方法。
2)jQuery对象和js对象区别
3)jQuery对象和js对象之间的相互转换
var doc2=$("#idDoc2")[0]; //转换jQuery对象为DOM对象 doc2.innerHTML="这是jQuery的第一个DOM对象" //使用jQuery对象本身提供的get函数来返回指定集合位置的DOM对象 var doc2=$("#idDoc2").get(0); doc2.innerHTML="这是jQuery的第二个DOM对象"
DOM对象,即是我们用传统的方法(javascript)获得的对象,jQuery对象即是用
jQuery类库的选择器获得的对象。
var domObj = document.getElementById("id"); //DOM对象 var $obj = $("#id"); //jQuery对象;
jQuery对象就是通过jQuery包装DOM对象后产生的对象,它是jQuery独有的。
如果一个对象是jQuery对象,那么就可以使用jQuery里的方法。
$("#foo").html(); //获取id为foo的元素内的html代码,html()是jQuery特有的方法
等同于js中:
document.getElementById("foo").innerHTML;
注意:在jQuery对象中无法使用DOM对象的任何方法。
例如:
$("#id").innerHTML 和$("#id").checked之类的写法都是错误的
可以用
$("#id").html()和$("#id").attr ("checked")之类的 jQuery方法来代替。
同样,DOM对象也不能使用jQuery方法。学习jQuery开始就应当树立正确的观念,
分清jQuery对象和DOM对象之间的区别,之后学习 jQuery就会轻松很多的。
jquery提供了两种方法将一个jquery对象转换成一个dom对象,即[index]和get(index)。
可能有人会觉得奇怪,怎么是用下标呢,没错,jquery对象就是一个数组对象。
举例:
var $cr=$("#cr"); //jquery对象 var cr = $cr[0]; //dom对象 也可写成 var cr=$cr.get(0); alert(cr.checked); //检测这个checkbox是否给选中
对于一个dom对象,只需要用$()把dom对象包装起来,就可以获得一个jquery对象了,
方法为$(dom对象);
举例:
var cr=document.getElementById("cr"); //dom对象 var $cr = $(cr); //转换成jquery对象
转换后可以任意使用jquery中的方法了。
dom对象才能使用dom中的方法,jquery对象不可以使用dom中的方法,但 jquery对象提供
了一套更加完善的工具用于操作dom。
平时用到的jquery对象都是通过$()函数制造出来的,$()函数就是一个jquery对象的制造工厂。
注意:
如果获取的对象是 jquery对象,那么在变量前面加上$,这样方便容易识别出哪些是jquery对象。
举例:
var $variable = jquery对象;
如果获取的是dom对象,则定义如下:
var variable = dom对象
标签:contex 通过 制造 obj col 框架 span 相互 个数
原文地址:https://www.cnblogs.com/tkzc2013/p/10985130.html