jQuery 知识总结

140 阅读2分钟

jQuery 知识总结

如何获取元素

jQuery 获取元素就是将一个选择表达式放进构造函数 jQuery()(简写为 $)。

选择表达式有两种类型:

  • CSS 选择器
$(document) //选择整个文档对象  

$('#tofuId') //选择 ID 为 tofuId 的网页元素  

$('div.tofuClass') // 选择 class 为 tofuClass 的 div 元素  

$('input[name=tofu]') // 选择 name 属性等于 tofu 的 input 元素
  • jQuery 特有的表达式
$('a:first') //选择网页中第一个 a 元素  

$('tr:odd') //选择表格的奇数行  

$('#tofuForm :input') // 选择表单中的 input 元素 

$('div:visible') //选择可见的 div 元素  

$('div:gt(2)') // 选择所有的 div 元素,除了前三个

$('div:animated') // 选择当前处于动画状态的 div 元素

jQuery 的链式操作是怎样的

链式操作是 jQuery 最重要的设计思想之一,每一步的 jQuery 操作返回的都是一个 jQuery 对象,所以在获取到元素之后可以对它进行一系列操作,并且所有操作可以连在一起。例如,下面的这几个操作:

$('div') // 找到 div 元素

$('div').find('h3') // 选择其中的 h3 元素

$('div').eq(2) // 选择第3个 h3 元素

$('div').html('Hello') // 将它的内容改为 Hello

可以以链条的形式写在一起:

$('div').find('h3').eq(2).html('Hello')

jQuery 还提供了.end()方法,可以让结果集后退一步:

$('div')
    .find('h3')
    .eq(2)
    .html('Hello')
    .end() // 退回到选中所有的 h3 元素的那一步
    .eq(0) // 选中第一个 h3 元素
    .html('MapoTofu') // 将它的内容改为 MapoTofu

如何创建元素

把新元素直接传入 jQuery 的构造函数就可以创建新元素:

$('<p>Hello MapoTofu</p>')

$('<li class="new">new list item</li>')

$('ul').append('<li>list item</li>')

如何移动元素

jQuery 提供两种方式操作元素的移动:

  • 获取要移动的元素,移动到另一个目标元素的某个相对位置:
$('div').insertAfter($('p')) // 把 div 元素移动 p 元素后面

$('div').insertBefore($('p')) // 把 div 元素移动 p 元素前面

$('p').appendTo($('div')) // 把 p 元素移动 div 元素内部的末尾

$('p').prependTo($('div')) // 把 p 元素移动 div 元素内部的首位
  • 获取目标元素,将要移动的元素移动到目标元素的某个相对位置:
$('p').after($('div')) // 把 p 元素加到 div 元素前面

$('p').before($('div')) // 把 p 元素加到 div 元素后面

$('div').append($('p')) // 在 div 元素内部的末尾加上 p 元素

$('div').prepend($('p')) // 在 div 元素内部的首位加上 p 元素

如何获取和修改元素的值

jQuery 使用同一个函数来完成取值(getter)和赋值(setter)。

函数的参数将决定是取值还是赋值:

  • 当没有参数时表示取值:$('h1').html()
  • 当有参数时,表示对该元素进行赋值:$('h1').html('Hello MapoTofu')

常见的函数有:

.html() // 取出或设置html内容

.text() // 取出或设置text内容

.attr() // 取出或设置某个属性的值

.width() // 取出或设置某个元素的宽度

.height() // 取出或设置某个元素的高度

.val() // 取出某个表单元素的值