JQuery霹雳:三、DOM操作

(原创:灰灰虫的家http://hi.baidu.com/grayworm)

一、元素操作
1.创建节点:
使用JQuery的工厂函数$()实现
var $newNode = $("<div id='dd'></div>");

2.插入节点:
假设页面中HTML代码:
<p>我想说:</p>

JQuery代码:
$("p").append("<b>您好</b>"); 运行结果为:<p>我想说:<b>您好</b></p> 等价于 $("<b>您好</b>").appendTo("p");
$("p").prepend("<b>您好</b>");
 运行结果为:<p><b>您好</b>我想说:</p> 等价于 $("<b>您好</b>").prependTo("p");
$("p").after("<b>您好</b>");
   运行结果为:<p>我想说:</p><b>您好</b> 等价于 $("<b>您好</b>").insertAfter("p");
$("p").before("<b>您好</b>");
   运行结果为:<b>您好</b><p>我想说:</p> 等价于 $("<b>您好</b>").insertBefore("p");

实现节点移动操作:
页面代码:
     <p title="选择你最喜欢的水果." >你最喜欢的水果是?</p>
        <ul>
            <li title='苹果'>苹果</li>
            <li title='橘子'>橘子</li>
            <li title='菠萝'>菠萝</li>
        </ul>

JQuery代码:
$("ul li:eq(1)").before($("ul li:eq(2)"));

$("ul li:eq(2)").before($("ul li:eq(1)"));

运行结果:
你最喜欢的水果是?
   苹果 
   菠萝 
   橘子

3.删除节点:
$("ul li:first").remove();
返回被移除的元素对象,把列表中的第一个元素删除掉
$("ul li:first").empty();把列表中第一个元素项内容清空,但保留元素。

4.复制节点:
$(this).clone().appendTo("ul"); 复制当前节点并追加到ul元素中。
$(this).clone(true).appendTo("ul"); 复制当前节点并追加到ul元素中。
上面第一种方式中,只把元素内容复制过去,而第二种方式clone(true)能够把元素内容和元素行为(事件)一起复制过去。

5.替换节点:
$("p").replaceWith("<b>你喜欢的水果:</b>");

还可以使用replaceAll(),replaceAll()只是颠倒replaceWith()的操作。
$("<b>你喜欢的水果:</b>").replaceAll("p");

6.包装节点:就是在元素的外部再套一层元素
$("p").wrap("<b></b>"); 运行结果: <b><p>您最喜欢的水果:</p></b>
$("p").wrapInner("<b></b>");
 运行结果:<p><b>您最喜欢的水果:</b></p>
$("p").wrapAll("<b></b>");把所有的<p>元素都包括在一个<b></b>标签对中。

如HTML代码如下:
   <p>您最喜欢的水果:</p>
   <p>您最不喜欢的水果:</p>

JQuery代码:
$("p").wrap("<b></b>");运行结果:
   <b><p>您最喜欢的水果:</p></b>
   <b><p>您最不喜欢的水果:</p></b>

   $("p").wrapAll("<b></b>");运行结果:
   <b>
   <p>您最喜欢的水果:</p>
   <p>您最不喜欢的水果:</p>
   </b>

二、属性操作:
1.获取属性:使用attr("属性名")方法
var $title = $("p").attr("title");

2.设置属性:使用attr("属性名","属性值")方法
$("p").attr("title","这是新设的属性");
$("p").attr({"title":"mytitle","name":"test"});

3.删除属性:
$("p").removeAttr("title");

三、样式操作:
1.获取样式和设置样式:

var p_class = $("p").attr("class"); 获取<p>元素的class值
$("p").attr("class","bluestyle"); 设置<p>元素的class值为.bluestyle样式,在替换原来class设置的样式

2.追加样式:使用addClass()来实现
$("p").addClass("greenstyle"); 在<p>元素原有的class样式的基础上再追加.greenstyle样式
运行结果:
<p class="bluestyle greenstyle">请选择你喜欢的水果</p>
会合并bluestyle和greenstyle两种样式,如果二者样式发生冲突,后者会覆盖前者。

3.移除样式:使用removeClass()来实现
$("p").removeClass("bluestyle"); //移除<p>元素中值为bluestyle的class
运行结果:
<p class="greenstyle">请选择你喜欢的水果</p>
如果要把bluestyle和greenstyle两种样式全都移除掉可以有以下三种写法:
$("p").removeClass("bluestyle").removeClass("greenStyle");
$("p").removeClass("bluestyle greenstyle");
$("p").removeClass();//移除所有的class样式。

4.切换样式:使用toggleClass(),如果不存在此样式,就添加此样式;如果已存在此样式就删除此样式。
$("p").toggleClass("otherstyle");
运行结果:
如果开始时是这样:
<p class="bluestyle greenstyle">请选择你喜欢的水果</p>
运行后就变为
<p class="bluestyle greenstyle another">请选择你喜欢的水果</p>

如果开始时是这样:
<p class="bluestyle greenstyle another">请选择你喜欢的水果</p>
运行后就变为
<p class="bluestyle greenstyle">请选择你喜欢的水果</p>

5.判断元素是否包含某样式:使用hasClass(),返回true或false
var ret = $("p").hasClass("another");

如果<p>中存在.another样式,运行结果为true,否则运行结果为false;

四、获取和设置HTML、文本、值的操作:
1.html():获取或设置元素内部的HTML内容
HTML文本:
<p><b>您最喜欢的水果</b></p>
JQuery代码:
var s = $("p").html();
s的值为:<b>您最喜欢的水果</b>

$("p").html("<i>您最不喜欢的水果</i>");
运行结果:
   <p><i>您最不喜欢的水果</i></p>


2.text():获取或设置元素内容文本内容
HTML文本:
<p><b>您最喜欢的水果</b></p>
JQuery代码:
var s = $("p").text();
s的值为:您最喜欢的水果

$("p").text("您最不喜欢的水果");
运行结果:
   <p>您最不喜欢的水果</p>

3.val():获取或设置表单无素的value值
无论是文本框、下拉列表、单选框等都可以。

defaultValue:表单元素的初始值。

val()还可以设置下拉列表、单选框、复选框被选中。
$("#single").val("选择1号");
 设置一个选中项
$(":checkbox").val(["选择2号","选择1号"]); 以数字形式赋值,设置多个选中项
在JQuery中,val()是从最后一个向前读取,如果value值或text中的任何一项符合都会被选中。

五、编历节点:
1.children():只考虑子元素,不考虑后代元素
$("body").children()
:body元素下的所有直接子节点

2.next():
$("p").next():
p标记后紧邻的同辈元素

3.prev():
$("p").prev():p标记前紧邻的同辈元素

4.silbings():
$("p").siblings():
与p标记同辈的所有元素

5.closest():
从当前元素开始,沿DOM树向上查找最近的匹配元素。

另外还有find()、filter()、prevAll()、nextAll()、parent()、parents()等方法。

六、CSS DOM操作
CSS DOM就是读取或设置style对象的各属性。
1.直接使用css()获取或设置样式
$("p").css("color"):获取color的值
$("p").css("color","red"):设置color为red
$("p").css(["font-size":"30px","background-color":"gray"]):设置复合属性
$("p").css("opacity","0.5"):设置为半透明

2.offset()方法:
获取元素在当前视窗位置的偏移,返回对象包含两个元素top和left。它只对可见元素起作用。
var obj = $("p").offset();
var left = obj.left;
var top = obj.top;

3.position()方法:
获取postion为relative或absolute的元素位置,返回对象也包含两个元素top和left。
var obj = $("p").position();
var left = obj.left;
var top = obj.top;

4.scrollTop()和scrollLeft()
获取滚动条距顶端或左端的距离
var scrolltop = $("p").scrollTop(); //获取滚动条的顶端距离
var scrollleft = $("p").scrollLeft();//获取滚动条的左端距离

$("p").scrollTop(300)://设置滚动条竖向滚动的距离
$("p").scrollLeft(300)://设置滚动条水平滚动的距离

(原创:灰灰虫的家http://hi.baidu.com/grayworm)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值