笔记 - jQuery入门

96 阅读1分钟

jQuery

jQuery是目前使用最广泛的javascript函数库。 它提供的 API 易于使用且兼容众多浏览器,这让诸如 HTML 文档遍历和操作、事件处理、动画和 Ajax 操作更加简单。

选择并获取网页元素

使用jQuery的第一步即为找到某个网页元素,通过选择表达式放入构造函数jQuery(),也即我们常看到的$(statement)

选择整个文档对象

$(document)

选择id

$('#id')

选择class

$('div.className')

选择name相关元素
// 选择所有的name属性等于'test'的input元素 
$("input[name='test']") 
// 选择所有的name属性不等于'test'的input元素 
$("input[name!='test']") 
// 选择所有的name属性以'name'开头的input元素 
$("input[name^='name']") 
// 选择所有的name属性以'test'结尾的input元素 
$("input[name$='test']") 
// 选择所有的name属性包含'test'的input元素 
$("input[name*='test']")
// 可以使用多个属性进行联合选择,该选择器是得到所有的含有id属性并且那么属性以test结尾的元素 
$("input[id][name$='test']") 
// 查找的是name为test的表单。
$(":input[name='test']")

jQuery特有表达式

选择第一个元素

$('div:first')

选择表格的奇数行

$('tr:odd')

选择表单中的input元素

$('#form1 :input')

选择可见的div

$('div:visible')

选择除了前三个之外的所有div

$('div:gt(2)')

选择当前处于动画状态的div元素

$('div:animated')

过滤器缩小选择结果

has()

选择包含p元素的div: $('div').has('p')

not()

选择不包含某class的div:$('div').not('className')

filter

选择特定class div:$('div').filter('className')

first()

选择第一个div: $('div').first()

eq()

选择第五个元素(从0开始):$('div').eq(4)

DOM tree上的移动方法

next()

选择后一个元素: $('div').next('p');

parent()

选择父元素: $('div').parent();

children

选择子元素: $('div').children();

siblings()

选择同级元素: $('div').siblings();

closest()

选择最近元素: $('div').closest('form');

链式操作

选中网页元素后,通过jQuery进行的每一步操作都会返回一个jQuery对象,因而不同的操作可以连载一起,以链条形式呈现。

例如:$('div').parent().siblings();

end() 退后一步

$('div')
    .parent()
    .children() 
    .end() // 退回到parent()
    .siblings(); 

创建新元素

新元素直接传入jQuery的构造函数

$('<p class="test">Hello</p>');
$('ul').append('<li>list item</li>');

复制元素

选中元素并使用.clone()

删除元素

删除元素使用.remove().detach()

两者的区别在于,前者不保留被删除元素的事件,后者保留,有利于重新插入文档时使用。

移动元素

// 在现存元素的外部,从后面插入元素
$('div').insertAfter($('p'));
$('p').after($('div'));
// 在现存元素的外部,从前面插入元素
$('div').insertBefore($('p'));
$('p').before($('div'));
//在现存元素的内部,从后面插入元素
$('div').appendTo($('p'));
$('p').append($('div'))
// 在现存元素的内部,从前面插入元素
$('div').prependTo($('p'));
$('p').prepend($('div'));

第一种方法会返回div,第二种会返回p。

元素的取值与赋值

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

e.g.

// 对<h1>赋值Hello
$('h1').html('Hello'); 

参考资料: