关于jQuery

303 阅读1分钟

jQuery的功能

  • jQuery是一个javascript函数库。
  • jQuery的基本设计思想和主要用法就是选择某个网页元素,然后对其进行某种操作。

获取网页元素

  • 将一个选择器放进构造函数jQuery()(简写为$)中,然后得到被选中的元素。
/*CSS选择器*/
  $(document) //选择整个文档对象
  $('#myId') //选择ID为myId的网页元素
  $('div.myClass') // 选择class为myClass的div元素
  $('input[name=first]') // 选择name属性等于first的input元素
/*jQuery特有表达式*/
  $('a:first') //选择网页中第一个a元素
  $('tr:odd') //选择表格的奇数行
  $('#myForm :input') // 选择表单中的input元素
  $('div:visible') //选择可见的div元素
  $('div:gt(2)') // 选择所有的div元素,除了前三个
  $('div:animated') // 选择当前处于动画状态的div元素

对获取结果进行筛选

  • jQuery也提供强大的过滤器,对结果集进行筛选
/*选择某个或某些元素*/
  $('div').has('p'); // 选择包含p元素的div元素
  $('div').not('.myClass'); //选择class不等于myClass的div元素
  $('div').filter('.myClass'); //选择class等于myClass的div元素
  $('div').first(); //选择第1个div元素
  $('div').eq(5); //选择第6个div元素
/*以当前节点为起点移动到附近节点*/
  $('div').next('p'); //选择div元素后面的第一个p元素
  $('div').parent(); //选择div元素的父元素
  $('div').closest('form'); //选择离div最近的那个form父元素
  $('div').children(); //选择div的所有子元素
  $('div').siblings(); //选择div的兄弟元素

链式操作

  • 链式操作:把对某个元素的一系列操作以链条的形式写出来。
  • 原理:每一步jQuery的操作返回的都是一个jQuery对象,所以不同操作可以连接在一起。
$('div').find('h3').eq(2).html('Hello').end().eq(0).html('World');//链条操作
/*分解后*/
$('div') //找到div元素
    .find('h3') //选择其中的h3元素
    .eq(2) //选择结果集中下标为2的元素
    .html('Hello') //将它的内容改为Hello
    .end()//退回到选中所有h3的那一步
    .eq(0)//选择结果集中下标为0的元素
    .html('World');//将它的内容改为World

对元素赋值/取值

  • 对网页元素的一般操作就是取值/赋值
  • jQuery中取值器和赋值器是合一的,由函数的参数决定取值还是赋值。
/*举个例子*/  
    $('h1').html(); //html()没有参数,表示取出h1的值
  $('h1').html('Hello'); //html()有参数Hello,表示对h1进行赋值
  • 如果结果集包含多个元素,那么赋值则为所有元素赋值,取值只取第一个元素的值(.text()除外)

常见取值/赋值函数

  • .html():取出或设置html内容
  • .text():取出或设置text内容
  • .attr():取出或设置某个属性的值
  • .width():取出或设置某个元素的宽度
  • .height():取出或设置某个元素的高度
  • .val():取出某个表单元素的值

移动元素

  • jQuery提供两组方法来操作元素在网页中移动
    1. 使用.insertAfter(),把div元素移动p元素后面:
    $('div').insertAfter($('p'));//返回div元素
    
    1. 使用.after(),把p元素加到div元素前面:
    $('p').after($('div'));//返回p元素
    
  • 一共有四对操作方式
    1. .insertAfter()和.after():在现存元素的外部,从后面插入元素
    2. .insertBefore()和.before():在现存元素的外部,从前面插入元素
    3. .appendTo()和.append():在现存元素的内部,从后面插入元素
    4. .prependTo()和.prepend():在现存元素的内部,从前面插入元素

复制,删除,创建元素

  • jQuery还提供对元素的复制,删除,创建操作
  • 复制:.clone()
  • 删除:.remove()(不保留被删除元素的事件)/.datch()(保留被删除元素的事件)
  • 清空元素:.empty() ---不删除,只清空
  • 创建元素:把新元素直接传入jQuery的构造函数即可
      $('<p>Hello</p>');
      $('<li class="new">new list item</li>');
      $('ul').append('<li>list item</li>');