使用jquery实现ajax
jquery对ajax封装了,不需要再对ajax里的open,send,onreadystate等等进项操作了。jquery中最底层的方法是$.ajax()【即原生的ajax】,第二层是load().$.get()和$.post()【最常用】. 第三层是$.getscript( )和$.getjson( ).
1.load方法
jquery中最为简单常用的方法。load(url,[date],回调函数)如果只用了load(url)则是GET方式。load(url,)加上请求参数,就是POST方式。load()方法是通过URL参数指定选择符,从加载过来的HTML文档中选出所需要的内容来达到目的。当URL参数的语法结构为“url selecter”(ps:中间有一个空格). 比如之前写的例子,
请求的是:
<h2><a href="mailto:andy@clearleft.com">Andy Budd</a></h2> <a href="http://andybudd.com/">http://andybudd.com/</a>
返回名字和网址,如果只想要<h2/>,则可以用选择器
var url = this.href + "h2";//错误,需要加在URL与选择器之间加空格 <pre name="code" class="html">var url = this.href + " h2";
如果只想要<h2/>中的<a/>节点中的数据,则可以用选择器:
var url = this.href + " h2 a";//空格为父元素与子元素之间的空格。就是:
<script type="text/javascript" src ="../scripts/jquery-1.9.1.js"> </script> <script type="text/javascript" > $(function(){ $("a").on("click",function(){ var args = {"time":new Date()}; var url = this.href + " h2"; //任何一个html 节点都可以使用load 方法来加载ajax,结果将直接插入 html 节点中。 $("#details").load(url,args); return false; }); }); </script>
下图可以看到响应
【实际上服务器<h2/><a/>都返回了,只是通过选择器选择需要显示的部分】
2. $.get 以及 $.post 方法
结构:$-get (url,[data],[callback],[type]);其中data是JSON格式。
xml格式下:
<span style="font-size:12px;"><script type="text/javascript" src ="../scripts/jquery-1.9.1.js"> </script> <script type="text/javascript"> $(function() { $("a").click(function(){ var url = this.href; var args = {"time":new Date()}; //<span style="color:#009900;"><strong>function: 回调函数,当响应结束后,回调函数被触发,相应结果在data 中。</strong></span> $.get(url,args,function(data){ var name = $(data).find("name").text(); var email = $(data).find("email").text(); var website= $(data).find("website").text(); $("#details").empty() .append("<h2><a href='mailto:'"+ email+ ">" + name + "</a></h2>") .append("<a href='" + website +"'>" + website + "</a>"); }); //<strong><span style="color:#009900;">该方法是jquery 对象的方法,其结果在回调函数的参数里面,需要自己安排</span></strong>。 return false; }); }); </script> </head> <body> <h1>People</h1> <ul> <li> <a href="files/andy.xml">Andy</a> </li> <li> <a href="files/richard.xml">Richard</a> </li> <li> <a href="files/jeremy.xml">Jeremy</a> </li> </ul> <div id="details"></div> </body> </html></span>输出结果:
3.getJSON
Json格式下
数据格式:
<span style="font-size:14px;">{"person": { "name":"Andy Budd","website":"http://andybudd.com/","email":"andy@clearleft.com" } }</span>
<script type="text/javascript" src ="../scripts/jquery-1.9.1.js"> </script> <script type="text/javascript"> $(function() { $("a").click(function(){ var url = this.href; var args = {"time":new Date()}; $.getJSON(url,function(data){ //<span style="color:#009900;"><strong>这里是getJSON</strong></span> var name = data.person.name; //<strong><span style="color:#009900;">这里也不同</span></strong> var email =data.person.email; var website= data.person.website; $("#details").empty() .append("<h2><a href='mailto:'"+ email+ ">" + name + "</a></h2>") .append("<a href='" + website +"'>" + website + "</a>"); }); <span style="color:#009900;"><strong>//该方法是jquery 对象的方法,其结果在回调函数的参数里面,需要自己安排。</strong></span> return false; }); }); </script> </head> <body> <h1>People</h1> <ul> <li> <a href="files/andy.js">Andy</a> </li> <li> <a href="files/richard.js">Richard</a> </li> <li> <a href="files/jeremy.js">Jeremy</a> </li> </ul> <div id="details"></div> </body> </html>输出结果: 原文链接:https://www.f2er.com/ajax/164394.html