删除节点
jQuery提供了三种删除节点的方法,remove()、detach()和empty()。
remove()
当某个节点用remove()方法删除后,该节点所包含的所有后代节点将同时被删除。这个方法的返回值是一个指向已被删除的节点的引用,因此可以在以后使用这些元素。
var $li = $("ul li:eq(1)").remove();
$li.appendTo("ul"); //把刚才删除的节点又重新添加到<ul>元素里
另外remove()方法也可以通过传递参数来选择性地删除元素,jQuery代码如下:
$("ul li").remove("li[title != 菠萝]");//将<li>元素中属性title不等于“菠萝”的<li>元素删除
detach()
detach()和remove()一样,也是从DOM中去掉所有匹配的元素。但是,detach()不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove不同,所有绑定的事件、附加的数据等都会保留下来。
empty()
严格来讲,empty()方法并不是删除节点,而是清空节点,它能清空元素中的所有后代节点。
$("ul li:eq(1)").empty();//获取第二个<li>元素节点后,清空此元素里的内容,注意是元素里,即<li>还在。
jQuery中的Ajax
jQuery对Ajax操作进行了封装,在jQuery中$.ajax()方法属于最底层的方法,第二层是load()、$.get()和$.post()方法,第三层是$.getScript()和$getJSON()方法。首先介绍第二层的方法,因为其使用频率很高。
load():载入远程 HTML 文件代码并插入至 DOM 中。
load( url [, data] [, callback])
//url:请求HTML页面的URL地址
//data(可选):发送至服务器的key/value数据
//callback(可选):请求完成时的回调函数,无论请求成功或失败
load()的传递方式根据参数data来自动指定。如果没有参数传递,则采用GET方式传递;反之,则会自动转换为POST方式。
//无参数传递,则是GET方式
$("#resText").load("test.php",function(){
//...
});
//有参数传递,则是POST方式
$(#restText").load("test.php", {name: "rain",age: "22"},function(){
})
$.get():使用GET方式来进行异步请求
load()方法通常用来从Web服务器上获取静态的数据文件,然而这并不能提现Ajax的全部价值。在项目中,如果需要传递一些参数给服务器中的页面,那么可以使用$.get()或者$.post();
$.get(url [, data] [, callback] [, type])
//url: 请求的HTML页的地址
//data(可选):发送至服务器的key/value数据会作为QueryString附加到请求URL中
//callback(可选):载入成功时回调函数(只有当Response的返回状态是success才调用该方法)自动将请求结果和状态传递给该方法,如果需要在出错时使用,请用$.ajax()
//type(可选):服务器端返回内容的格式,包括xml、html、script、json、text和_default
$.post():使用POST方式来进行异步请求
$.post(url [, data] [, callback] [, type])
//url: 请求的HTML页的地址
//data(可选):发送至服务器的key/value数据会作为QueryString附加到请求URL中
//callback(可选):载入成功时回调函数(只有当Response的返回状态是success才调用该方法)自动将请求结果和状态传递给该方法,如果需要在出错时使用,请用$.ajax()
//type(可选):服务器端返回内容的格式,包括xml、html、script、json、text和_default
$.getScript():通过 GET 方式请求载入并执行一个 JavaScript 文件。
$.getScript(url [, data] [, callback] [, type])
//url: 请求的HTML页的地址
//callback(可选):载入成功时回调函数