JQuery对和DOM对象互转

作者:小菜 更新时间:2025-03-16 点击数:
简介:在网页设计中我们常常需要用到JS开发,Jquery是继prototype之后又一个优秀的Javascrīpt框架。

它是轻量级的js库(压缩后只有21k) ,它兼

【菜科解读】

在网页设计中我们常常需要用到JS开发,Jquery是继prototype之后又一个优秀的Javascrīpt框架。

它是轻量级的js库(压缩后只有21k) ,它兼容CSS3

JQuery 1.6 下载 http://www.cr173.com//soft/26429.html

但会出理这样的一个问题就是有时一个 JQuery 对像需要用到 Html 中DOM的属性时我们因该在两者中如何来转换。

刚开始学习jQuery,可能一时会分不清楚哪些是jQuery对象,哪些是DOM对象。

至于DOM对象不多解释,我们接触的太多了,下面重点介绍一下jQuery,以及两者相互间的转换。

什么是jQuery对象? ---就是通过jQuery包装DOM对象后产生的对象。

jQuery对象是jQuery独有的,其可以使用jQuery里的方法。

比如: $("#test").html() 意思是指:获取ID为test的元素内的html代码。

其中html()是jQuery里的方法 这段代码等同于用DOM实现代码: document.getElementById("id").innerHTML; 虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错。

比如:$("#test").innerHTML、document.getElementById("id").html()之类的写法都是错误的。

还有一个要注意的是:用#id作为选择符取得的是jQuery对象与document.getElementById("id")得到的DOM对象,这两者并不等价。

请参看如下说的两者间的转换。

既然jQuery有区别但也有联系,那么jQuery对象与DOM对象也可以相互转换。

在再两者转换前首先我们给一个约定:如果一个获取的是 jQuery对象,那么我们在变量前面加上$,如:var $variab = jQuery对象;如果获取的是DOM对象,则与习惯普通一样:var variab = DOM对象;这么约定只是便于讲解与区别,实际使用中并不规定。

jQuery对象转成DOM对象: 两种转换方式将一个jQuery对象转换成DOM对象:[index]和.get(index); (1)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的DOM对象。

如:var $v =$("#v") ; //jQuery对象 var v=$v[0]; //DOM对象 alert(v.checked) //检测这个checkbox是否被选中 (2)jQuery本身提供,通过.get(index)方法,得到相应的DOM对象 如:var $v=$("#v"); //jQuery对象 var v=$v.get(0); //DOM对象 alert(v.checked) //检测这个checkbox是否被选中 DOM对象转成jQuery对象: 对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。

$(DOM对象) 如:var v=document.getElementById("v"); //DOM对象 var $v=$(v); //jQuery对象 转换后,就可以任意使用jQuery的方法了。

通过以上方法,可以任意的相互转换jQuery对象和DOM对象。

需要再强调注意的是:DOM对象才能使用DOM中的方法,jQuery对象是不可以用DOM中的方法。

jQuery对象就是通过jQuery包装DOM对象后产生的对象。

jQuery对象是jQuery独有的,其可以使用jQuery里的方法,但是不能使用DOM的方法;例如$(”#img”).attr(”src”,”test.jpg”); 这里的$(”#img”)就是jQuery对象; DOM对象就是Javascript固有的一些对象操作。

DOM对象能使用Javascript固有的方法,但是不能使用jQuery里的方法。

例如:document.getElementById(”img”).src=”test.jpg”;这里的document.getElementById(”img”)就是DOM对象; $(”#img”).attr(”src”,”test.jpg”); 和document.getElementById(”img”).src=”test.jpg”;是等价的,是正确的,但是$(”#img”).src=”test.jpg”;或者document.getElementById(”img”).attr(”src”,”test.jpg”); 都是错误的。

在说一个例子:就是this,我在写jQuery的时候经常这样写:this.attr(”src”,”test.jpg”); 可是就是出错。

其实this是DOM对象,而.attr(”src”,”test.jpg”) 是jQuery方法,所以出错了。

要解决这个问题就要将DOM对象转换成jQuery对象,例如$(this).attr(”src”,”test.jpg”); 1.DOM对象转成jQuery对象: 对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。

$(DOM对象) 如:var v=document.getElementById(”v”); //DOM对象 var $v=$(v); //jQuery对象 转换后,就可以任意使用jQuery的方法了。

2.jQuery对象转成DOM对象: 两种转换方式将一个jQuery对象转换成DOM对象:[index]和.get(index); (1)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的DOM对象。

如:var $v =$(”#v”) ; //jQuery对象 var v=$v[0]; //DOM对象 alert(v.checked) //检测这个checkbox是否被选中 (2)jQuery本身提供,通过.get(index)方法,得到相应的DOM对象 如:var $v=$(”#v”); //jQuery对象 var v=$v.get(0); //DOM对象 alert(v.checked) //检测这个checkbox是否被选中

JQuery,对和,DOM,对象,互转,在,网页设计,中,我

使用jquery和MySql创建一个ajax关键词数据搜索

在web开发过程当中,我们经常需要在前台页面输入关键词进行数据的搜索,我们通常使用的搜索方式是将搜索结果用另一个页面显示,这样的方式对于搭建高性能网站来说不是最合适的,今天给大家分享一下如何使用 jQuery,MySQL 和 Ajax创建简单和有吸引力的Ajax 搜索,希望大家在开发项目的时候能够根据自己的实际情况灵活运用。

点击搜索默认显示所有的结果输入A之后显示的搜索结果输入 p之后显示的搜索结果没有找到相关的搜索词页面演示-点击下面的搜索按钮搜索数据文件结构 主要用到几个文件 index.php首页 dbcon.php数据库连接文件 search.php搜索处理页面第一步创建一个ajax_search的数据库,紧接着创建一个ajax_search表CREATE TABLE `ajax_search` ( `id` int(11) NOT NULL auto_increment, `FirstName` varchar(50) NOT NULL, `LastName` varchar(50) NOT NULL, `Age` int(11) NOT NULL, `Hometown` varchar(50) NOT NULL, `Job` varchar(50) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;HTML :index.php--程序主页面DB Connect:dbcon.php--数据库连接文件 ?php //数据库连接函数 $link = mysql_connect(‘localhost‘, ‘root‘, ‘你的密码‘); mysql_select_db(‘ajax_demo‘,$link);//选择数据库连接?>搜索结果页面search.php代码如下 ?phpfunction checkValues($value) // 使用此函数对所有这些值都要检查防止 sql 注入和跨站点脚本 //除去字符串开头和末尾的空格或其他字符 $value = trim($value); // Stripslashes if (get_magic_quotes_gpc()) { //删除由 addslashes() 函数添加的反斜杠,该函数用于清理从数据库或 HTML 表单中取回的数据。

$value = stripslashes($value); //转换所有的 , 字符 $value = strtr($value,array_flip(get_html_translation_table(HTML_ENTITIES))); // 剥去 HTML的标签 $value = strip_tags($value); // 引用值 $value = mysql_real_escape_string($value); return $value;include("dbcon.php");//加载数据库连接文件$rec = checkValues($_REQUEST[‘val‘]);//获取table内容if($rec) $sql = "select * from ajax_search where FirstName like ‘%$rec%‘ or LastName like ‘%$rec%‘ or Age like ‘%$rec%‘ or Hometown like ‘%$rec%‘"; $sql = "select * from ajax_search";$rsd = mysql_query($sql);//查询这条语句$total = mysql_num_rows($rsd);//返回结果集中行的数目if($total==0){ echo ‘No Record Found !‘;}?>checkValues函数过滤字符串防止sql注入和跨站点脚本攻击,mysql_query($sql);用来查询语句,mysql_fetch_assoc()用来循环输出结果,怎么样是不是很简单,如果你的项目有需要,可以直接使用这个代码。

使用,jquery,和,MySql,创建,一个,ajax,关

JQuery调用Webservice实现AJAX实现教程

前几天跟一个朋友在聊Web的AJAX时,很惊讶他的设计方法很原始,直接用的js直接调的.aspx,传参来取得结果实现局部刷新,个人感觉这样不好维护,也没有灵活性.怎样能够做到灵活?可维护性强?做一个小实例出来,也加强一下印象.jQuery+Web service来实现:Web service作后台服务,用jQuery(js优秀框架)调此web service取得结果,如下是原理图:现在开始演示一个实例,开发工具如下为:Visual studio S 2008+jQuery1.4.11.新建一项目:MyService2.Web service后台代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;namespace MyService{ /// /// Summary description for Service1 /// [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. [System.Web.Script.Services.ScriptService]//此处需要设定为ScriptService类型,js才能够从web service取得值 public class Service1 : System.Web.Services.WebService { [WebMethod] public string GetMessage(string name) { return "Hello,"+name; } [WebMethod] public List GetMembers() { List personList = new List(); personList.Add("AGAN"); personList.Add("MS"); personList.Add("ZURI"); personList.Add("JILI"); personList.Add("Who are you!"); return personList; } [WebMethod] public string GetYourAge(string name) { int age = 0; switch(name.ToUpper()){ case "AGAN": age = 18; break; case "MS": age = 28; break; case "ZURI": age = 25; break; case "JILI": age = 23; break; default: age = 30; break; } return age.ToString(); } }}注意在web.config中配置好默认文档Service1.asmx,否则IIS中测试会报错403的错误. 3.在项目解决方案中添加一Web setup项目MyServiceSetup,如下图:右键点击MyServiceSetup安装包,有Install(安装),unInstall(卸载)点击即可发布到IIS中或中IIS移除.浏览已发布的这个Web service可以看到已公开的这方个方法,如图所示:现在我们来测试一下GetMambers()这个方法,如图:点"调用"后结果如下:这说明发布的这个Web service已没有问题,现在我们用jQuery来调这个服务来实现AJAX局部刷新的效果。

现在下载jQuery插件jquery-1.4.1.js下载网址:http://www.cr173.com/soft/35464.html4. 建一个测试的项目来测试web service:TestMyService:用js调用web service,一个按钮取得ArrayOfString中的列表数据,点击列表项调GetYourAge()方法取得某个人的相关信息(年龄),添加一html文件,把jquery-1.4.2.js把到js,代码和jquery代码如下: %@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestMyService._Default" %> Untitled Page script src="js/jquery-1.4.1.js" type="text/javascript"> /script script type="text/javascript"> function GetDataList() { $.ajax({ type:"POST", contentType:"application/json", url:"http://localhost/MyServiceSetup/Service1.asmx/GetMembers",//GetMembers是web service的方法名 data:"",//无参数类型 datatype:‘json‘, success:function(result){ try{ $(‘#listMembers‘).empty(); $(result.d).each(function() {//遍历取得的结果 $("#listMembers").append("" + this + ""); }); }catch(e){ alert(e); } }, error: function(result, status){ if(status==‘error‘){ alert(result); } } }); } function GetAge(name) { $.ajax({ type:"POST", contentType:"application/json", url:"http://localhost/MyServiceSetup/Service1.asmx/GetYourAge",//GetYourAge是web service的方法名 data:"{name:‘"+name+"‘}",//name是参数名,跟web service的方法参数一致 datatype:‘json‘, success:function(result){ try{ $("#lblAge").html(name+","+result.d+" Year‘s old.");//result.d是取得的值 }catch(e){ alert(e); } }, error: function(result, status){ if(status==‘error‘){ alert(result); } } }); } /script Members: 在IIS中测试结果如下图:点击Get取得人名列表,如下图:点击列表项的某个人名,即取得人员的相关信息(年龄),如下图所示:现在一个简单的jquery调web service实例已完成了.源代码如下:测试源码TestMyServiceSample.rar JQuery,调用,Webservice,实现,AJAX,教 上一篇:windows系统配置phpMyAdmin图文教程 下一篇:

加入收藏
               

JQuery对和DOM对象互转

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录