jQuery对象和DOM对象使用说明,需要的朋友可以参考下。
1jQuery对象和DOM对象
第一次学习jQuery,经常分辨不清哪些是jQuery对象,哪些是 DOM对象,因此需要重点了解jQuery对象和DOM对象以及它们之间的关系
DOM对象,即是我们用传统的方法(javascript)获得的对象,jQuery对象即是用jQuery类库的选择器获得的对象;
复制代码 代码如下:
var domObj = documentgetElementById("id"); //DOM对象
var $obj = $("#id"); //jQuery对象;
jQuery对象就是通过jQuery包装DOM对象后产生的对象,它是jQuery独有的。如果一个对象是jQuery对象,那么就可以使用jQuery里的方法,例:
$("#foo")html(); //获取id为foo的元素内的html代码,html()是jQuery特有的方法;
上面的那段代码等同于:
documentgetElementById("foo")innerHTML;
注意:在jQuery对象中无法使用DOM对象的任何方法。
例如$("#id")innerHTML 和$("#id")checked之类的写法都是错误的,可以用$("#id")html()和$("#id")attr ("checked")之类的 jQuery方法来代替。同样,DOM对象也不能使用jQuery方法。学习jQuery开始就应当树立正确的观念,分清jQuery对象和DOM对象之间的区别,之后学习 jQuery就会轻松很多的。
2jQuery对象和DOM对象的互相转换
在上面第一点说了,jquery对象和dom对象是不一样的!比如jquery对象不能使用dom的方法,dom对象不能使用jquery方法,那假如我 jquery没有封装我要的方法,那能怎么办呢?
这时我们可以将jquer对象转换成dom对象
jquery对象转换成 dom对象
jquery提供了两种方法将一个jquery对象转换成一个dom对象,即[index]和get(index)。可能有人会觉得奇怪,怎么是用下标呢,没错,jquery对象就是一个数组对象
下面代码将演示一个jquery对象转换成dom对象,再使用dom对象的方法
复制代码 代码如下:
var $cr=$("#cr"); //jquery对象
var cr = $cr[0]; //dom对象 也可写成 var cr=$crget(0);
alert(crchecked); //检测这个checkbox是否给选中
dom对象转换成jquery对象
对于一个dom对象,只需要用$()把dom对象包装起来,就可以获得一个jquery对象了,方法为$(dom对象);
复制代码 代码如下:
var cr=documentgetElementById("cr"); //dom对象
var $cr = $(cr); //转换成jquery对象
转换后可以任意使用jquery中的方法了
通过以上的方法,可以任意的相互转换jquery对象和dom对象
最后再次强调,dom对象才能使用dom中的方法,jquery对象不可以使用dom中的方法,但 jquery对象提供了一套更加完善的工具用于 *** 作dom,关于jquery的dom *** 作将在后面的文章进行详细讲解
ps: 平时用到的jquery对象都是通过$()函数制造出来的,$()函数就是一个jquery对象的制造工厂
建议:如果获取的对象是 jquery对象,那么在变量前面加上$,这样方便容易识别出哪些是jquery对象,例如:
var $variable = jquery对象;
如果获取的是dom对象,则定义如下:
var variable = dom对象
在jquery里异步请求时后面的代码不会等你的请求返回数据后再执行,也就是说alert(retVal);执行时你的ajax可能还没返回数据,也就是说你的全局变量retVal没有被重新赋值,也就是还是以前的那个-1,我以前也是这个问题 ajax为异步请求,顾名思义它的请求时跟你的js同时执行的,所以要对ajax返回结果进行相应的 *** 作都是写在它的回调函数里,即: success:function(data){}里面,这样说你可能不太明白,举个例子
var re = 0;
function test(){
alert(re);//num1
re = testAjax();
alert(re);//num3
}
function testAjac(){
$ajax({
type:"post",
url:"",
dataType:"json",
success:function(data){
re = 1
alert(re);//num2
}
});
}
上面执行alert的顺序肯定是num1,num3,num2,并且alert出来的值是0,0,1;
当然如果你的请求足够快(几乎不可能),快到比本页面还快,那么顺序就会是num1,num2,num3了
// controller
public ActionResult GetList(){
List<Model> result = 接口获取list;
return Json(result , JsonRequestBehaviorAllowGet);
}
//js
$ajax({
url:"contrller/GetList",
type:"post",
success:function(re)
{
if(re!=null && relength>0)
{
for(int i=0;i<relength;i++)
{
alert(re[i]属性);
}
}
}
});
基本就是这样的,你自己试试吧
那就查为什么没有返回值,现在后台php中,看看 请求有没有到达,到达之后,有没有返回。
在前台页面接受返回的data,看看有没有数据,
按这个流程走,找到哪一步出问题了。然后解决问题。
以上就是关于DOM对象与jquery对象有什么不同全部的内容,包括:DOM对象与jquery对象有什么不同、jquery ajax 在回调函数内 给变量赋值,为什么返回不出去那要怎么处理、使用jquery的ajax请求action,并返回一个list集合,在action那头怎么封装传给ajax的回调函数,ajax又如何接收等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)