jQuery
选择器引擎
js
// 1. 基础选择器
$('#header') // ID选择器
$('.menu-item') // 类选择器
$('div') // 标签选择器
// 2. 组合选择器
$('ul.nav > li') // 子元素
$('input[type="text"]') // 属性选择器
// 3. 筛选方法
$('li').first() // 第一个元素
$('tr').eq(3) // 第四个tr
$('div').filter('.active') // 过滤DOM操作示例
- 增删改查示例:
js
// 创建元素
const $newDiv = $('<div>', {
class: 'message',
text: 'Hello World'
})
// 插入元素
$('#container').append($newDiv) // 内部末尾
$('h1').before('<hr>') // 前面插入
// 修改属性
$('#logo').attr('src', 'new.png')
$('input').prop('checked', true)
// 删除元素
$('.obsolete').remove()
// 经典链式调用
$('#todoList')
.find('li')
.addClass('pending')
.end()
.append('<li>New Item</li>')事件处理
js
// 1. 基础绑定
$('#btn').click(function() {
console.log($(this).text())
})
// 2. 事件委托(动态元素)
$('#list').on('click', '.item', function() {
$(this).toggleClass('active')
})
// 3. 自定义事件
$('#widget').trigger('refresh')
// 4. 一次性事件
$('#init').one('click', initApp)AJAX
js
// GET请求
$.get('/api/data', { page: 2 }, function(res) {
renderTable(res.data)
})
// POST表单提交
$.post('/submit', $('#form').serialize())
// 完整配置
$.ajax({
url: '/upload',
method: 'PUT',
data: JSON.stringify(payload),
contentType: 'application/json',
success: () => alert('保存成功'),
error: xhr => console.error(xhr.status)
})工具方法
js
// 类型判断
$.isArray(obj)
$.isFunction(callback)
// 数组操作
$.each(arr, (index, value) => {})
$.grep(arr, item => item > 10) // 过滤
// 对象扩展
const settings = $.extend({}, defaults, options)
// 数据缓存
$('#elem').data('timestamp', Date.now())