jQuery笔记--选择器

jQuery文档结构图

加入jQuery

  • jQuery优势
    轻量/强大的选择器/出色的DOM操作的封装/可靠的事件处理机制/完善的Ajax/不污染顶级变量/出 色的浏览器兼容性/链式操作方式/隐式迭代/行为层与结构层的分离/插件/文档/开源

window.onload $(document).ready()
执行时机 等待所有内容加载完毕后执行 DOM结构加载完之后就可以执行
编写个数 一次只能执行一个,同时编写多个时执行最后一个 可以多个同时执行
简化写法 $(function(){ });

jQuery对象和DOM对象 jQuery选择器与css选择器

  • jQuery对象是通过jQuery包装DOM对象后产生的对象

jQuery不能使用DOM的方法,DOM也不能使用jQuery的

1. jQuery—>DOM

  • jQuery对象是一个类似数组的对象,通过【index】
    var $cr = $("#cr"); //jquery对象 var cr = $cr[0]; //DOM对象
  • 本身的get(index)方法
    var cr = $cr.get(0);

2. DOM—>jQuery

使用$()将DOM对象包起来即是jQuery对象

  • jquery选择器与css选择器的写法十分类似,但作用效果不同
  • css是找到元素后添加样式
  • jQuery是找到样式之后添加行为

jQuery中涉及操作css样式的部分比单纯的css功能更强大,拥有跨浏览器的兼容性

jquery选择器

  • 使用jQuery获取网页内不存在的元素也不会报错。$("#idName")获取到的是对象,检查是否存在用$("#idName"),length > 0或者转化为DOM对象

基本选择器

选择器 描述 返回 示例
#id 单个 $(“#test”)
.class 集合 $(“.test”)
element 根据给定的元素名匹配元素 集合 $(“p”)
* 匹配所有元素 集合 $(“*”)
selector1,…selectorN 将每一个选择器匹配到的元素合并后一起返回 集合 $(“div,span” )

层次选择器

选择器 描述 返回
$(“div span”) 选取div元素里所有span元素 集合
$(“div > span”) 选取div元素下元素名为span的子元素 集合
$(“.one + div”) 选取class为one的下一个div同辈元素
$(“.one ~ div”) 选取class为one的元素后面的所有的div同辈元素 集合
  • $("div + span")等价于$("div").next("span")
  • $("div ~ span")等价于$("div").nextAll("span")获取所有div后面的同辈的span元素
    $("div").siblings("span")获取div所有同辈元素,无论位置前后

过滤选择器

规则与css中的伪类选择器语法相同,都以一个冒号开头

  • 基本过滤选择器
    :frist,: even,: eq(index),: gt(index),:header(),:animated选取正在执行动画的所有元素,:focus选取当前获取焦点的元素
  • 内容过滤选择器
    :contains(text),:empty,:has(selector),:parent
  • 可见性过滤选择器
    :hidden,:visible
  • 属性过滤选择器(使用方括号)
    [attribute]
  • 子元素过滤选择器
    :eq(index)只匹配一个元素,而:nth-child将为每一个父元素匹配子元素,并且:nth-child(index)的index是从1开始的,而:eq(index)是从0开始的
  • 表单对象属性过滤选择器
    :enable,:disabled,:checked,:selected
  • 表单选择器
    :input选取所有<input><textarea><select><button>
    :text选取所有的单行文本框
    :password选取所有的密码框
    :radio,:checkbox,:submit,:reset,:button,:file,:hidden
    注意

1.选取器中含有特殊字符时,需要进行转义

1
2
<div id="id#b">-----$("#id\\#b");   //转义#
<div id="id[1]">------$("#id\\[1\\]"); //转义[]

2.jQuery1.1.0版本中的@
3.选择器中的空格问题

  • $(‘.test :hidden’) 带空格,选取class为test的元素里面的隐藏元素
  • $(‘.tst:hidden’) 不带空格 选取隐藏的class为test的元素

区分filter(exper)筛选元素,对自身集合进行筛选。find(expr)寻找匹配元素,对他的子集进行操作