jQuery

导入jQuery文件 

        两种方式:网页复制或者本地导入

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.js"></script>
<!--  <script type="text/javascript" src="js/jquery-1.12.3.js"></script>-->

1. jQuery核心函数
  * 简称: jQuery函数($/jQuery)
  * jQuery库向外直接暴露的就是$/jQuery
  * 引入jQuery库后, 直接使用$即可
    * 当函数用: $(xxx)
    * 当对象用: $.xxx()
2. jQuery核心对象
  * 简称: jQuery对象
  * 得到jQuery对象: 执行jQuery函数返回的就是jQuery对象
  * 使
 1. 作为一般函数调用: $(param)
  1). 参数为函数 : 当DOM加载完成后,执行此回调函数
  2). 参数为选择器字符串: 查找所有匹配的标签, 并将它们封装成jQuery对象
  3). 参数为DOM对象: 将dom对象封装成jQuery对象
  4). 参数为html标签字符串 (用得少): 创建标签对象并封装成jQuery对象
2. 作为对象使用: $.xxx()
  1). $.each() : 隐式遍历数组
                
  2). $.trim() : 去除两端的空格

/*
 需求1. 点击按钮: 显示按钮的文本, 显示一个新的输入框
 需求2. 遍历输出数组中所有元素值
 需求3. 去掉"  my atguigu  "两端的空格
 */
/*需求1. 点击按钮: 显示按钮的文本, 显示一个新的输入框*/
//1.1). 参数为函数 : 当DOM加载完成后,执行此回调函数
$(function () { // 绑定文档加载完成的监听
  // 1.2). 参数为选择器字符串: 查找所有匹配的标签, 并将它们封装成jQuery对象
  $('#btn').click(function () { // 绑定点击事件监听
    // this是什么? 发生事件的dom元素(<button>)
    // alert(this.innerHTML)
    // 1.3). 参数为DOM对象: 将dom对象封装成jQuery对象
    alert($(this).html())
    // 1.4). 参数为html标签字符串 (用得少): 创建标签对象并封装成jQuery对象
    $('<input type="text" name="msg3"/><br/>').appendTo('div')
  })
})

/*需求2. 遍历输出数组中所有元素值*/
var arr = [2, 4, 7]
// 1). $.each() : 隐式遍历数组
$.each(arr, function (index, item) {
  console.log(index, item)
})
// 2). $.trim() : 去除两端的空格
var str = ' my atguigu  '
// console.log('---'+str.trim()+'---')
console.log('---'+$.trim(str)+'---')
 
1. jQuery对象是一个包含所有匹配的任意多个dom元素的伪数组对象
2. 基本行为
  * size()/length: 包含的DOM元素个数
  * [index]/get(index): 得到对应位置的DOM元素
  * each(): 遍历包含的所有DOM元素
  * index(): 得到在所在兄弟元素中的下标

1. 是什么?
  - 有特定格式的字符串
2. 作用
  - 用来查找特定页面元素
3. 基本选择器
  - #id : id选择器
  - element : 元素选择器
  - .class : 属性选择器
  - * : 任意标签
  - selector1,selector2,selectorN : 取多个选择器的并集(组合选择器)
  - selector1selector2selectorN : 取多个选择器的交集(相交选择器)

层次选择器: 查找子元素, 后代元素, 兄弟元素的选择器
1. 空格    ancestor descendant
  在给定的祖先元素下匹配所有的后代元素
2. 大于号   parent>child
  在给定的父元素下匹配所有的子元素
3. +号      prev+next
  匹配所有紧接在 prev 元素后的 next 元素
4.  ~号     prev~siblings
  匹配 prev 元素之后的所有 siblings 元素

在原有选择器匹配的元素中进一步进行过滤的选择器
  * 基本
  * 内容
  * 可见性
  * 属性

例:

 1. 选择第一个div
 2. 选择最后一个class为box的元素
 3. 选择所有class属性不为box的div
 4. 选择第二个和第三个li元素
 5. 选择内容为BBBBB的li
 6. 选择隐藏的li
 7. 选择有title属性的li元素
 8. 选择所有属性title为hello的li元素
 */
//1. 选择第一个div
// $('div:first').css('background', 'red')

//2. 选择最后一个class为box的元素
//$('.box:last').css('background', 'red')

//3. 选择所有class属性不为box的div
// $('div:not(.box)').css('background', 'red')  //没有class属性也可以

//4. 选择第二个和第三个li元素
// $('li:gt(0):lt(2)').css('background', 'red') // 多个过滤选择器不是同时执行, 而是依次
//$('li:lt(3):gt(0)').css('background', 'red')

//5. 选择内容为BBBBB的li
// $('li:contains("BBBBB")').css('background', 'red')

//6. 选择隐藏的li
// console.log($('li:hidden').length, $('li:hidden')[0])

//7. 选择有title属性的li元素
// $('li[title]').css('background', 'red')

//8. 选择所有属性title为hello的li元素
$('li[title="hello"]').css('background', 'red')

表单选择器
  1). 表单
  2). 表单对象属性例

需求:
 1. 选择不可用的文本输入框
 2. 显示选择爱好 的个数
 3. 显示选择的城市名称
 */
//1. 选择不可用的文本输入框
// $(':text:disabled').css('background', 'red')

//2. 显示选择爱好 的个数
console.log($(':checkbox:checked').length)

//3. 显示选择的城市名称
$(':submit').click(function () {
  var city = $('select>option:selected').html() // 选择的option的标签体文本
  city = $('select').val()  // 选择的option的value属性值
  alert(city)

工具方法:

1. $.each(): 遍历数组或对象中的数据
2. $.trim(): 去除字符串两边的空格
3. $.type(obj): 得到数据的类型
4. $.isArray(obj): 判断是否是数组
5. $.isFunction(obj): 判断是否是函数
6. $.parseJSON(json) : 解析json字符串转换为js对象数组
1. 操作任意属性
   attr() 设置
   removeAttr() 删除设置
   prop() 
2. 操作class属性
   addClass() 添加class属性
   removeClass() 删除class属性
3. 操作HTML代码/文本/值
   html() 
   val()

需求:
 1. 读取第一个div的title属性
 2. 给所有的div设置name属性(value为atguigu)
 3. 移除所有div的title属性
 4. 给所有的div设置class='guiguClass'
 5. 给所有的div添加class='abc'
 6. 移除所有div的guiguClass的class
 7. 得到最后一个li的标签体文本
 8. 设置第一个li的标签体为"<h1>mmmmmmmmm</h1>"
 9. 得到输入框中的value值
 10. 将输入框的值设置为atguigu
 11. 点击'全选'按钮实现全选
 12. 点击'全不选'按钮实现全不选
 */
//1. 读取第一个div的title属性
// console.log($('div:first').attr('title')) // one

//2. 给所有的div设置name属性(value为atguigu)
// $('div').attr('name', 'atguigu')

//3. 移除所有div的title属性
// $('div').removeAttr('title')

//4. 给所有的div设置class='guiguClass'
//$('div').attr('class', 'guiguClass')

//5. 给所有的div添加class='abc'
//$('div').addClass('abc')

//6. 移除所有div的guiguClass的class
//$('div').removeClass('guiguClass')

//7. 得到最后一个li的标签体文本
//console.log($('li:last').html())

//8. 设置第一个li的标签体为"<h1>mmmmmmmmm</h1>"
//$('li:first').html('<h1>mmmmmmmmm</h1>')

//9. 得到输入框中的value值
//console.log($(':text').val()) // 读取

//10. 将输入框的值设置为atguigu
//$(':text').val('atguigu') // 设置      读写合一
//11. 点击'全选'按钮实现全选
  // attr(): 操作属性值为非布尔值的属性
  // prop(): 专门操作属性值为布尔值的属性
var $checkboxs = $(':checkbox')
$('button:first').click(function () {
  $checkboxs.prop('checked', true)
})

//12. 点击'全不选'按钮实现全不选
$('button:last').click(function () {
  $checkboxs.prop('checked', false)
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值