(一)简介
1.选择器和过滤器的区别
过滤器一般用在选择器后面,对选择器进行过滤。
过滤器使用后还可继续过滤,每次都用上一次过滤的结果
2.过滤器的内容
基本过滤、内容过滤、属性过滤、可见过滤、表单过滤、通用过滤
(1)基本过滤器
:first表示第一个子元素
$("#div1 span:first")表示div1下的第一个sapn标签
亦可以使用$("#div1 span").first()
:last表示最后一个元素
$("p:last")得到最后一个段落
:eq(索引)指定索引确定的元素,索引从0开始
$("p:eq(1)")表示第二个段落
:even表示所有的索引偶数行
:odd表示所有的索引奇数行
:gt(索引)、:lt(索引)表示大于或小于某个索引的
:not(selecter)表示不适用某个选择器的
$("p:not(.cl)")表示获取没有使用.cl类样式的所有段落
:header表示所有的标题(h#)标签
$(":header")
:animated表示正在执行动画的元素
(2)属性过滤器
判断是否具有某些属性,及属性值
语法"[属性名]"、"[属性=值]“
多个属性过滤器写在一起可以同时过滤
其他语法
[属性] 表示包含属性
[属性=值] 表示指定属性与值
[属性*=值] 表示属性值中包含某值
[属性^=值] 表示属性值以某值开头
[属性$=值] 表示属性值以某值结尾
可以替换getElementsByName方法
(3)表单过滤
-> $("#form1 :enabled")
选取id为form1的表单中所有启用的元素
-> $("#form2 :disabled")
选定禁用的元素
-> $(“input:checked”)
选取所有选中的元素,在IE9+和其他浏览器中会得到select标签的元素
-> $("select:selected")
选取所有的下拉列表
(4)其他过滤器
简写
-> :radio :checkbox :text :submit :image :reset :button :file
-> :input 所有input、textarea、select、button元素
(5)可见过滤器
:hidden 选取页面中不可见元素
表单元素type=“hidden”(隐藏域)
设置css的display:none
高宽为0的层
父元素隐藏,子元素亦隐藏
注意:visibility:hidden与opacity为0不算(jQuery版本不同 1.3.2)
visible 选取页面中可见元素
(6)内容过滤器
contains(text)
过滤出包含给定文本的元素(innerText)
empty
过滤出没有子节点
has(selector)
过滤出子元素中使用了selector的这个元素
parent
过滤出可以做父元素的元素(即包含子节点)
(7)子元素过滤器
-> :first-child、:last-child
-> :only-child
-> :nth-child(条件) // 可以是索引、even或odd和3n
-> .children()
(二)节点和事件
1.删除节点
> empty()
-> 删除所有的子节点(类似集合Clear方法)
-> DOM实现参考
while(ele.firstChild) {ele.removeChild(ele.firstChild);}
-> remove(selector)
-> 对对象集进行删除
-> $("div").remove();
-> 没有参数全删,有选择器进行过滤
$("div").remove(":contains(xyz)");
-> 处理节点树的移动
-> 克隆
-> 元素.clone()
-> 参数true连同事件等一并克隆过去
元素.clone().appendTo(父节点);
2.jQuery中的事件对象
注册事件bind方法
元素.bind(“事件”, func)
移除事件unbind方法 // 不传参清空事件
元素.unbind(“事件名”); // 取消事件时会将该事件的事件链均移除
元素.unbind(“事件”, 方法名); 可以执行移除事件
hover方法
元素.hover(func_over, func_out); // 其中使用enter与leave事件
toggle方法
元素.toggle(func1,func2,…);
3.如何获得事件对象
在方法中传参e
$("#dv1").mousemove(function(e) { document.title = e.pageX+",”+e.pageY; });
获取事件源 e.target
取消事件冒泡 e.stopPropagation();
阻止事件执行 e.preventDefault();
4.事件的其他内容
鼠标点击 which
键盘码 keyCode
e.type
altKey、shiftKey、ctrlKey