Jquery操作DOM,笔记2

本文欢迎转载,但必须在文章显眼处保留原文地址

http://blog.163.com/ganlanfei@126/blog/static/121819871201011160936439/

接着上一篇Jquery操作DOM(笔记1)继续

1.替换节点

在Jquery中提供了两个替换节点的方法,即replaceWidth()和replaceAll();

replaceWidth:

说明:将匹配到的元素替换成指定的HTML元素

$("p").replaceWidth("<b>AA</b>"); //将所有P标记替换成<b>AA</b>

replaceAll:

说明:与replaceWidth相反

$(("<b>AA</b>")).replaceAll("p"); //将所有P标记替换成<b>AA</b>

2.包裹节点

在Jquery中提供了三个包裹节点的方法 wrap(),wrapAll()和wrapInner()

wrap:

说明:将指定的HTML元素包裹所有匹配的元素

$("p").wrap("<div></div>"); //在每个P标记外面增加一个div容器;

wrapAll:

说明:将指定的html元素包裹所有匹配的元素,与warp不同的是,warp是将匹配到的元素进行单独包裹,而warpAll是将所有匹配到的元素集中到一起(在匹配到的第一个元素的位置)进行包裹,会改变到DOM的结构。

$("p").wrapAll("<div></div>"); //在所有P标记外面增加一个div容器;

PS:读者最好自己试一下两个的区别,可使用Firebug或者IE自带的开发工者工(在ie下按F12自动弹出)查看;

WrapInner:

说明:该方法将每一个匹配的元素的子内容(包括文本节点)用其他结构化的标记包裹起来。

$("strong").wrapInner("<b></b>");

使用前<strong>AA</strong> 使用后<strong><b>AA</b></strong>

3.属性操作:

在Jquery中,用attr()方法来获取和设置元素的属性,用removeAttr()方法来删除元素的属性

例: var title=$("p").attr("title"); //获取第一个p元素的title属性,有多个时,也只是得到第一个p标记而以

var title=$("p")[1].title; //转换成dom对象,获取第二个p标记的title属性

$("p").attr("title","you title value"); //设置p元素的title属性值

$("p").attr("title":"you title value","name":"you name values"); //同时设置p元素多个属性值

$("P").removeAttr("title");//删除p元素的title属性

获取,设置或者删除样式一样可以用上面的方法,因为元素有class属性。

除了可以改变样式外,还可以追加样式,在jquery里面提供了addClass()方法

例:<p class="myClassA" title="my title value">哈哈</p>

$("p").addClass("myClassB");

<p class="myClassA myClassB" title="my title value">哈哈</p>

PS:如果给一个元素添加了多个class值,那么就相当于合并了它们的样式,如果有不同的class设定同一个样式属性,那后者覆盖前者.

有追加,当然也有删除,与addClass()相反的则是removeClass()

例:$("p").removeClass("myClassA").removeClass("myClassB");

简写$("p").removeClass("myClassA myClassB");

4.接下来介绍一个交替执行的方法,即toggle()

例: <p >点我呀</p>

$().ready(function() {

$("p").toggle(function() {

alert("单击");//代码1

}, function() {

alert("再单击"); //代码2

})

})

第一次点击的时候执行代码1,第二次执行代码2,第三次执行代码1,就是这样不断的重复切换。

5.判断是否含有某个样式

hasClass()可以用来判断元素中是否含有某个class,如果有返回true,否则返回false

例:$("p").hasClass("myClassA");//也可以写成$("p").is(".myClassA"),完全是等价的,hasClass实际上也是调用了is()方法。

6.设置和获取html,文本和值

html()此方法类似javascript中的innerHTML属性,可以用来读取或设置某个元素中的html内容

例:<p><b>aa</b></p>

alert($("p").html());

弹出:<b>aa</b>

设置p元素里面的内容

$("p").html("<i>aaa</i>");

结果:<p><i>aa</i></p>

text()此方法类似javascript中的innerText属性,可以用来读取或设置某个元素中的text内容

例:<p><b>aa</b></p>

alert($("p").text());

弹出:aa

设置p元素里面的内容

$("p").text("<b><i>aaa</i></b>");

结果:<b><i>aaa</i></b>

PS:javascript中的innerText属性并不能在Firefox浏览器下运行,而jQuery的text()方法支持所有浏览器。

夜深了,待续。。。