DOM对象与jquery对象有什么不同

DOM对象与jquery对象有什么不同,第1张

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又如何接收等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9660669.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存