WEB开发网
开发学院网页设计JavaScript JavaScript和jQuery的DOM操作 阅读

JavaScript和jQuery的DOM操作

 2009-08-05 20:13:38 来源:WEB开发网   
核心提示:1、创建元素节点传统的javascript方法,创建元素节点 程序代码var a = document.createElement("p");jQuery中创建节点的方法是: 程序代码$('<p></p>');和createElement()一样,JavaS

1、创建元素节点
传统的javascript方法,创建元素节点

 程序代码
var a  = document.createElement("p");

jQuery中创建节点的方法是:

 程序代码
$('<p></p>');

和createElement()一样,创建出来的新元素节点不会被自动添加到文档里。
如果想把它添加到文档里,可以使用 jQuery中的 append()或者insertAfter()方法或者 before ()等方法。
比如:

 程序代码
var a = $('<p></p>');
$('body').append(a);//添加到body元素的最后


2、创建文本节点
传统的Javascript方法,创建文本节点

 程序代码
var b = document.createTextNode("my demo");

通常创建文本节点和创建元素节点配合使用.
比如:

 程序代码
var mes = document.createTextNode("hello world");
var container = document.createElement("p");
container.appendChild(mes);
document.body.appendChild(container);

而在jQuery中创建节点就不必那么麻烦了:

 程序代码
$('<p>hello world</p>');

和createElement()一样,创建出来的新元素节点不会被自动添加到文档里。
如果想把它添加到文档里,可以使用 jQuery中的 append()或者insertAfter()方法或者 before ()等方法。
比如:

 程序代码
var a = $('<p>hello world</p>');
$('body').append(a);//添加到body元素的最后


3、复制节点
传统的javascript方法,复制节点:
比如:

 程序代码
var mes = document.createTextNode("hello world");
var container = document.createElement("p");
container.appendChild(mes);
document.body.appendChild(container);
var newpara = container.cloneNode(true);//true和false的区别
document.body.appendChild(newpara );

注意:
true : 是<p>aaaa</p>克隆。
false: 只克隆<p></p>,里面的文本不克隆。
可以用 firebug 看看。

在jQuery中复制节点:

 程序代码
var a = $('<p>hello world</p>');
$('body').append(a);
var clone_a = a.clone();
$('body').append(clone_a);


和createElement()一样,复制出来的新元素节点不会被自动添加到文档里。
如果想把它添加到文档里,可以使用 jQuery中的 append()或者insertAfter()方法或者 before ()等方法。
另外还有一个注意:如果克隆后,id一样,不要忘记用.attr("id","new_id")来改变新的节点的ID。

4、插入节点
传统的javascript方法,插入节点:
比如:
appendChild():
给元素追加一个子节点, 新的节点 插入到 最后。

 程序代码
var container = document.createElement("p");
document.body.appendChild(container);


insertBefore():
顾名思义,就是把一个新的节点插入到目标节点的前面。

 程序代码
Element.insertBefore(newNode,targerNode );


在jQuery中插入节点比javascript自带的多了很多,
比如:

 引用内容

.append()
.appendTo()
.PRepend()
.prependTo()
.after()
.insertAfter()
.before()
.insertBefore()


所以对dom操作的简化也是jquery的亮点之一。


5、删除节点
传统的javascript方法,删除节点:
比如:

 程序代码
var b = document.getElementById("b");
var c = b.parentNode;
c.removeChild(b);


在jQuery中的删除节点:
比如:

 程序代码
$('#test2').remove();


6、替换节点
传统的javascript方法,替换节点:
比如:

 程序代码
Element.repalceChild( newNode , oldNode );

oldNode必须是Element的一个子节点。

在jQuery中的替换节点:
比如:

 程序代码
$("<p>替换 test1!</p>").replaceAll("#test1");


7、设置属性,获取属性
传统的javascript方法,设置属性,获取属性:
比如:

 程序代码
setAttribute();//设置
var a  = document.createElement(“p”);
a.setAttribute("title","my demo");

不管以前有没有title属性,以后的值是 my demo。

 程序代码
getAttribute();//获取
var a =document.getElementById("CSSrain");
var b = a.getAttribute("title");

获取的时候,如果属性不存在,则返回空,

在jQuery中的设置属性,获取属性:
比如:

 程序代码
$("#test1").attr({ "class" : "test" , "title" : "TestDemo!" });
$("#test1").attr("class");


8、查找节点
查找节点对jQuery来说 简直是小菜一碟.
jQuery最引入关注的就是查找节点,也就是通常所说的选择器.
比如:

 程序代码

$('#id')
$('.class')
$('tag')
$('tag.class')
$('#id tag')
$('tag#id')
$('#id:visible')
$('#id .class')
$('.class .class')

Tags:JavaScript jQuery DOM

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接