jQuery 选择器、DOM操作、事件、动画
作者:
Jquery选择器
$(document).ready(function(){})
$(function(){})
如果获取的对象是jQuery对象,那么在变量前面加上$,例如:var $variable=jQuery对象
选择器
1, 判断页面是否存在某元素:if($(“#tt”).length>0){} 或者if($(“#tt”)[0]){};
2, 基本选择器
$(“#test”) 选择id为test的元素 |
$(“.test”)选择class为test的所有元素 |
$(“p”)选择所有的<p>标签 |
$(“*”)选择页面上的所有元素 |
$(“span ,#two”)选择页面上所有的<span>标签和id为two的元素 |
3, 层次选择器
$(“div span”)表示选取div中的所有的span元素 |
$(“parent>children”)选取parent下所有children的子元素 |
$(‘.one+span')选取class为one的下一个span元素 |
$(‘.one~div')选取class为one的后面的所有的div兄弟元素 |
$(‘.one+span')等价于$(“.one”).next(“span”)
$(‘one~div')等价于$(“.one”).nextAll(“div”)
$(“.one”).siblings(“div”) 选取class为one的所有的兄弟元素div,无论前后
4, 过滤选择器
(1)基本的过滤器
$(“div:first”)选取所有div元素中第一个div元素 |
$(“div:last”)选取所有div元素最后一个div元素 |
$(“input:not(.myClass)”)选取class不是myClass的input元素 |
$(“input:even”)选取索引是偶数的input元素 |
$(“input:odd”)选取索引时奇数的input元素 |
$(“input:eq(1)”)选取索引等于1的input元素 |
$(“input:gt(1)”)选取索引大于1的input元素(大于1不包括1) |
$(“input:lt(1)”)选取索引小于1的input元素 (小于1不包括1) |
$(“:header”)选取网页中所有的h1、h2…… |
$(“div:animated”)选取正在执行动画的div元素 |
(2)内容过滤器
$(“div:contains(‘我')”)选取含有文字“我”的div元素 |
$(“div:empty”)选取不包含子元素(包含文本元素)的div空元素 |
$(“div:has(p)”)选取含有p元素的div元素 |
$(“div:parent”)选取拥有子元素(包含文本元素)的div元素 |
(3)可见性过滤选择器
$(“:hidden”)选取所有不可见的元素。包括<input type=”hidden”/>,<div style=”display:none;”>和<div style=”visibility:hidden;”>等元素。如果只想选取<input>元素,可以使用$(“input:hidden”) |
$(“div:visible”)选取所有可见的<div>元素 |
(4)属性过滤选择器
$(“div[id]”)选取拥有属性id的元素 |
$(“div[title=test]”)选取属性title为test的div元素 |
$(“div[title!=test]”)选取属性title不是test的div元素(没有属性title的div也会被选取) |
$(“div[title^=test]”)选取属性title以test开始的div元素 |
$(“div[title$=test]”)选取属性title以test结束的div元素 |
$(“div[title*=test]”)选取属性title包含test的div元素 |
$(“div[id][title$='test']”)选取拥有属性id,并且属性title以test结束的div元素 |
(5)子元素过滤选择器
:eq(index)只匹配一个元素,而:nth-child将为每一个父元素匹配子元素,并且:nth-child(index)的index是从1开始的,而:eq(index)是从0算起的 |
:first只返回单个元素,而:first-child选择符将为每个父元素匹配第一个子元素。 例如$(“ul li:first-child”)选取每个ul中第一个li元素 |
:last只返回单个元素,而:last-child选择符将为每个父元素匹配最后一个子元素 |
$(“ul li:only-child”)在ul中选取是唯一子元素的li元素 |
:nth-child()选择器是很常用的子元素过滤选择器,详细功能如下:
1.:nth-child(even)能选取每个父元素下的索引值是偶数的元素
2. :nth-child(odd)能选取每个父元素下的索引值的奇数的元素
3.:nth-child(2)能选取每个父元素下索引值等于2的元素
4.nth-child(3n)能选取每个父元素下的索引值是3的倍数的元素(n从0开始)
5.nth-child(3n+1)能选取每个父元素下的索引值是(3n+1)的元素(n从0开始)
(6)表单对象属性过滤选择器
$(“#form1 :enabled”)选取id为form1的表单内的所有可用元素 |
$(“#form2 :disabled”)选取id为“form2”的表单内的所有不可用元素 |
$(“input:checked”)选取所有被选中的input元素 |
$(“select :selected”.text())选取所有被选中的选项元素 |
5.表单选择器
$(“:input”)选取所有input、textarea、select和button元素 |
$(“:text”)选取所有的单行文本框 |
$(“:password”)选取所有的密码框 |
$(“:radio”)选取所有的单选框 |
$(“:checkbox”)选取所有的复选框 |
$(“:submit”)选取所有的提交按钮 |
$(“:image”)选取所有的图像按钮 |
$(“:reset”)选取所有的重置按钮 |
$(“:button”)选取所有的按钮 |
$(“:file”)选取所有的上传域 |
$(“:hidden”)选取所有不可见元素 |
Dom操作
Dom core(核心)、HTML-DOM和CSS-DOM
1. 插入节点的方法
append() |
$(“p”).append(“<b>你</b>”) <p>test <b>你</b></p> |
appendTo() |
$(“<b>你</b>”).appendTo(“p”) <p>test <b>你</b></p> |
prepend() |
$(“p”). prepend ( “<b>你</b>”) <p><b>你</b>test </p> |
prependTo() |
$(“p”). prependTo ( “<b>你</b>”) <p><b>你</b>test </p> |
After() |
$(“p”). after ( “<b>你</b>”) <p>test </p><b>你</b> |
insertAfter() |
$( “<b>你</b>”). insertAfter (“p”) <p>test </p><b>你</b> |
Before() |
$(“p”). before ( “<b>你</b>”) <b>你</b><p>test </p> |
insertBefore() |
$( “<b>你</b>”). insertBefore (“p”) <b>你</b><p>test </p> |
2. 删除节点
Remove()方法 empty()清空节点
3. 复制节点
Clone() $(this).clone(true).appendTo(“body”)
复制元素的同时复制元素中所绑定的事件
4. 替换节点
replaceWith():$(“p”).replaceWith(“<a>test</a>”);
replaceAll():$(“<a>test</a>”). replaceAll (“p”);
5. 包裹节点
Wrap() |
$(“strong”).wrap(“<b></b>”);<b><strong>ssss</strong></b> |
wrapAll() |
$(“strong”). wrapAll (“<b></b>”);<b><strong>ssss</strong> <strong>ssss</strong></b> |
wrapInner() |
$(“strong”).wrapInner (<b></b>”);<strong><b>ssss</b></strong> |
6. 属性操作
Attr(); 设置多个$(“p”).attr({“title”:”dd”,”name”:”myp”})
removeAttr()移除属性
7. 样式操作
获取和设置样式 |
Attr() |
追加样式 |
addClass() |
移除样式 |
removeClass() removeClass(“one two”) |
切换样式 |
toggle()主要控制行为上的重复切换 toggleClass()样式上的重复切换 |
判断是否含有某个样式 |
hasClass()等价于is(“.one”) |
8.设置和获取html、文本和值
html() |
读取或者设置某个元素中的HTML内容 |
text() |
读取或者设置某个元素中文本内容 |
val() |
设置和获取元素的值defaultValue初始值 |
9.遍历节点
Children() |
取得匹配元素的子元素的集合,只考虑子元素不考虑后代元素 |
Next() |
取得匹配元素后面紧邻的同辈元素 |
Prev() |
取得匹配元素前面紧邻的同辈元素 |
Siblings() |
取得匹配元素前后所有的同辈元素 |
Closest() |
取得最近的匹配元素 |
还有很多遍历方法:find(),filter(),nextAll(),prevAll(),parent(),parents()等 |
CSS-DOM操作
获取样式 |
$(“.one”).css(“color”) |
设置样式 |
$(“.one”).css(“color”,”red”) $(“.one”).css({“opacity”:”0.5”,”background-color”:”blue”}) |
Height() |
$(“.one”).height(),设置:$(“.one”).height(“20px”) |
Width() |
$(“.one”).width(),设置:$(“.one”).width(“200px”) |
Offset() |
获取元素在当前视窗的相对偏移,包括top和left |
Position() |
获取元素相对于最近的一个position样式属性设置为relative或者absolute的祖父节点的相对偏移,它返回的对象也包括两个属性,即top和left |
ScrollTop() |
获取和设置元素的滚动条距顶端的距离 |
ScrollLeft() |
获取和设置元素的滚动条距左侧的距离 |
事件和动画
事件
(1) 绑定事件
bind(type[,data],fn);
参数:type:事件类型,也可以自定义名称
data:作为event.data属性值传递给事件对象的额外数据对象
fn:用来绑定的处理函数
绑定多个事件类型
Ex:$(“div”).bind(“mouseover mouseout”,function(){
$(this).toggleClass(“over”);
})
(2) 合成事件
Hover(enter,leave);
用于模拟光标悬停事件。当光标移动到元素上时,会触发指定的第一个函数(enter);当光标移除这个元素时,会触发指定的第二个函数(leave)
toggle(fn1,fn2,….fnN);
用户模拟鼠标连续单击事件。第一次单击元素,触发指定的第一个函数;当在次单击同一个元素时,则触发指定的第二个函数(fn2);如果有更多的函数,则依次触发,知道最后一个。
(3) 冒泡事件
假设网页上有2个元素,其中一个元素嵌套在另一个元素里,并且都被绑定了click事件,同时body元素也绑定了click事件,当点击最里面元素的事件时,同时其它事件也会触发。从内向外
停止事件冒泡的方法:stopPropagation()
Ex:$(‘span').bind(“click”,function(event){
Var txt=$().html()+”<p>内层span元素被单击</p>”;
$(‘#msg').html(txt);
Event.stopPropagation(); 停止事件冒泡
})
停止表单默认提交:event.preventDefault()==return false;
(4) 移除事件
Unbind([type][,data]);
Type:事件类型
Data:将要移除的函数
(5) 触发一次函数
One(type,[data],fn);
事件触发后立即解除
动画
Show() |
Slow:600毫秒、normal:400毫秒、fast:200毫秒 |
Hide() | |
Fadeln() |
在指定的一段时间内降低元素的不透明度,直到元素完全消失 |
fadeout() |
和上相反 |
slideUp() |
与下相反 |
slideDown() |
元素将由上之下延伸显示 |
自定义动画animate
语法结构:animate(params,speed,callback);
参数说明如下:
1. Params:一个包含样式属性及值的映射,比如{property1:“value1”,property2:”value2”,….}
2. Speed:速度参数,可选。
Callback:在动画完成时执行的函数,可选
就暂时先添加这点吧,以后再慢慢完善吧!