27
2013
08

JavaScript 和 jQuery 的 DOM 操作

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("mydemo");

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

比如:

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","mydemo");

不管以前有没有 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')

« 上一篇下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。