前端-jQuery学习回顾2

前言:尚硅谷平台学习的xxxx知识回顾(插入链接)

在这里插入图片描述

一、_jQuery函数的使用

介绍:

  1. 作为一般函数调用: $(param)
    1). 参数为函数 : 当DOM加载完成后,执行此回调函数
    2). 参数为选择器字符串: 查找所有匹配的标签, 并将它们封装成jQuery对象
    3). 参数为DOM对象: 将dom对象封装成jQuery对象
    4). 参数为html标签字符串 (用得少): 创建标签对象并封装成jQuery对象
  2. 作为对象使用: $.xxx()
    1). $.each() : 隐式遍历数组
    2). $.trim() : 去除两端的空格

实例2:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>03_jQuery核心函数</title>
</head>

<body>

<div>
  <button id="btn">测试</button>
  <br/>
  <input type="text" name="msg1"/><br/>
  <input type="text" name="msg2"/><br/>
</div>
<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script type="text/javascript">
  /*
   需求1. 点击按钮: 显示按钮的文本, 显示一个新的输入框
   需求2. 遍历输出数组中所有元素值
   需求3. 去掉"  my atguigu  "两端的空格
   */
  //完成需求1
  $(function (){
    $('#btn').click(function () {
      //this是什么?发生事件的dom元素(<button>)
      //2). 参数为选择器字符串: 查找所有匹配的标签, 并将它们封装成jQuery对象
      // alert(this.innerHTML)
      //3)参数为DOM对象: 将dom对象封装成jQuery对象 可以使用jQuery相关的属性
      // alert($(this).html())
      //  4). 参数为html标签字符串 (用得少): 创建标签对象并封装成jQuery对象
$('<input type="text" name="msg3"/>').appendTo('div')
    })
  })

  //完成需求2
  var arr =[2,4,7]
  //原生可以使用foreach jQuery是看中文文档里工具里.each
  //i 是index ,n是item
  $.each( arr, function(i, n){
    console.log( "Item #" + i + ": " + n );
  });
// 需求3. $.trim():去端两端的空格
  var str ='  my atguigu  '
  console.log(str)
  console.log(str.trim())
  console.log("-----"+$.trim(str)+"-----")


</script>
</body>

</html>

二、jQuery对象的使用

介绍:

  1. jQuery对象是一个包含所有匹配的任意多个dom元素的伪数组对象
  2. 基本行为
  • size()/length: 包含的DOM元素个数
  • [index]/get(index): 得到对应位置的DOM元素
  • each(): 遍历包含的所有DOM元素
  • index(): 得到在所在兄弟元素中的下标

什么是伪数组呢?
伪数组的详细介绍

实例:

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>04_jQuery对象</title>
</head>

<body>
<button>测试一</button>
<button>测试二</button>
<button id="btn3">测试三</button>
<button>测试四</button>

<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script type="text/javascript">

  /*
   需求:
   需求1. 统计一共有多少个按钮
   需求2. 取出第2个button的文本
   需求3. 输出所有button标签的文本
   需求4. 输出'测试三'按钮是所有按钮中的第几个
   */
  //需求1.
  var $buttons =$('button')
  console.log($buttons.length,$buttons.size())
  // 需求2
  console.log($buttons[1].innerHTML,$buttons.get(2).innerHTML)
  //需求3.
  $buttons.each(function (i,n){
    console.log("当前是第"+i,"文案是:"+n.innerHTML,this)
  })
  // 需求4.
  console.log($("#btn3").index())


  //伪数组
//  Object Length属性  数值下标属性

  console.log($buttons instanceof Array)//false
</script>
</body>
</html>

三、选择器

在这里插入图片描述

1.基本选择器

在这里插入图片描述
实例:

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>05_基本选择器</title>
</head>

<body>
<div id="div1" class="box">div1(class="box")</div>
<div id="div2" class="box">div2(class="box")</div>
<div id="div3">div3</div>
<span class="box">span(class="box")</span>

<br>
<ul>
  <li>AAAAA</li>
  <li title="hello">BBBBB(title="hello")</li>
  <li class="box">CCCCC(class="box")</li>
  <li title="hello">DDDDDD(title="hello")</li>
</ul>

<!--
1. 是什么?
  - 有特定格式的字符串
2. 作用
  - 用来查找特定页面元素
3. 基本选择器               举例 
  - #id : id选择器         &("#div")     选择id=div的
  - element : 元素选择器     &("div")    选择div标签的
  - .class : 属性选择器       &(".box")  选择class为box的
  - * : 任意标签                &("*")  选择全部标签
  - selector1,selector2,selectorN : 取多个选择器的并集(组合选择器)
  - selector1selector2selectorN : 取多个选择器的交集(相交选择器)
-->
<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script type="text/javascript">
  /*
   需求:
   1. 选择id为div1的元素
   2. 选择所有的div元素
   3. 选择所有class属性为box的元素
   4. 选择所有的div和span元素
   5. 选择所有class属性为box的div元素
   */
  //需求  1 给指定的id,加上了背景颜色
  // $('#div1').css('background','red')
   //需求  2 给指定的标签,加上了背景颜色
  // $('div').css('background','green')
  //需求  3 给指定的标签,加上了背景颜色
  // $('.box').css('background','blue')
 //需求  4 给指定的标签,加上了背景颜色
 //  $('div,span').css('background','pink')
//需求  5   交集 给指定的标签,加上了背景颜色   查找class属性要使用点
//   $('div.box').css('background','yellow')



</script>
</body>

</html>

2.层次选择器

在这里插入图片描述

siblings() 方法返回被选元素的所有同胞元素。

实例:

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>06_层次选择器</title>
</head>

<body>
<ul>
  <li>AAAAA</li>
  <li class="box">CCCCC</li>
  <li title="hello"><span>BBBBB</span></li>
  <li title="hello"><span class="box">DDDD</span></li>
  <span>EEEEE</span>
</ul>

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

<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script type="text/javascript">
  /*
   需求:
   1. 选中ul下所有的的span
   2. 选中ul下所有的子元素span
   3. 选中class为box的下一个li
   4. 选中ul下的class为box的元素后面的所有兄弟元素
   */
  // 需求:
  // 1. 选中ul下所有的的span   找到表单中所有的 标签 元素 使用空格
  // $('ul span').css('background','yellow')
  // 2. 选中ul下所有的子元素span
  // $('ul>span').css('background','yellow')

  // 3. 选中class为box的下一个li
  // $('.box+li').css('background','yellow')

  // 4. 选中ul下的class为box的元素后面的所有兄弟元素 *是匹配所有元素
  $('ul .box~*').css('background','yellow')
</script>
</body>
</html>

3.过滤选择

在这里插入图片描述

在这里插入图片描述

实例:

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>07_过滤选择器</title>
</head>

<body>
<div id="div1" class="box">class为box的div1</div>
<div id="div2" class="box">class为box的div2</div>
<div id="div3">div3</div>
<span class="box">class为box的span</span>
<br/>
<ul>
  <li>AAAAA</li>
  <li title="hello">BBBBB</li>
  <li class="box">class为box的CCCCC</li>
  <li title="hello">DDDDDD</li>
  <li title="two">BBBBB</li>
  <li style="display:none">我本来是隐藏的</li>
</ul>
<!--
在原有选择器匹配的元素中进一步进行过滤的选择器
  * 基本
  * 内容
  * 可见性
  * 属性
-->
<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script type="text/javascript">

  /*
   需求:
   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','yellow')

  // 3. 选择所有class属性不为box的div
  // $("div:not(.box)").css('background','blue')

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

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

  // 6. 选择隐藏的li
  // $("li:hidden").css('background','blue')
// console.log($('li:hidden').length, $("li:hidden")[0])
  // 7. 选择有title属性的li元素
  // $("li[title]").css('background','blue')
  // 8. 选择所有属性title为hello的li元素
  $("li[title='hello']").css('background','blue')

</script>
</body>

</html>

4.表单选择器

在这里插入图片描述
在这里插入图片描述
实例:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>08_表单选择器</title>
</head>

<body>
<form>
  用户名: <input type="text"/><br>
  密 码: <input type="password"/><br>
  爱 好:
  <input type="checkbox"/>篮球
  <input type="checkbox" checked="checked"/>足球
  <input type="checkbox" checked="checked"/>羽毛球 <br>
  性 别:
  <input type="radio" name="sex" value='male'/><input type="radio" name="sex" value='female'/><br>
  邮 箱: <input type="text" name="email" disabled="disabled"/><br>
  所在地:
  <select>
    <option value="1">北京</option>
    <option value="2" selected="selected">天津</option>
    <option value="3">河北</option>
  </select><br>
  <input type="submit" value="提交"/>
</form>
<!--
表单选择器
  1). 表单
  2). 表单对象属性
-->
<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script type="text/javascript">
  /*
   需求:
   1. 选择不可用的文本输入框
   2. 显示选择爱好 的个数
   3. 显示选择的城市名称
   */
  // 1. 选择不可用的文本输入框 两种方法
  // $(':input[disabled="disabled"]').css('background','red')
  // $(':text:disabled').css('background','red')
  // 2. 显示选择爱好 的个数
 console.log( $(':checkbox:checked').length)

  // 3. 显示选择的城市名称
  console.log($("select option:selected").html())
  console.log($("select>option:selected").html())
  console.log($("select").val())
</script>
</body>
</html>

5.选择器小练习

需求:表格隔行变色
在这里插入图片描述

最终效果:
在这里插入图片描述
代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>01__表格隔行变色</title>
  <style>
    div, span, p {
      width: 140px;
      height: 140px;
      margin: 5px;
      background: #aaa;
      border: #000 1px solid;
      float: left;
      font-size: 17px;
      font-family: Verdana;
    }

    div.mini {
      width: 55px;
      height: 55px;
      background-color: #aaa;
      font-size: 12px;
    }

    div.hide {
      display: none;
    }

    #data {
      width: 600px;
    }

    #data, td, th {
      border-collapse: collapse;
      border: 1px solid #aaaaaa;
    }

    th, td {
      height: 28px;
    }

    #data thead {
      background-color: #333399;
      color: #ffffff;
    }

    .odd {
      background-color: #ccccff;
    }
  </style>
</head>
<body>
<table id="data">
  <thead>
  <tr>
    <th>姓名</th>
    <th>工资</th>
    <th>入职时间</th>
    <th>操作</th>
  </tr>
  </thead>
  <tbody>
  <tr>
    <td>Tom</td>
    <td>$3500</td>
    <td>2010-10-25</td>
    <td><a href="javascript:void(0)">删除</a></td>
  </tr>
  <tr>
    <td>Mary</td>
    <td>$3400</td>
    <td>2010-12-1</td>
    <td><a href="javascript:void(0)">删除</a></td>
  </tr>
  <tr>
    <td>King</td>
    <td>$5900</td>
    <td>2009-08-17</td>
    <td><a href="javascript:void(0)">删除</a></td>
  </tr>
  <tr>
    <td>Scott</td>
    <td>$3800</td>
    <td>2012-11-17</td>
    <td><a href="javascript:void(0)">删除</a></td>
  </tr>
  <tr>
    <td>Smith</td>
    <td>$3100</td>
    <td>2014-01-27</td>
    <td><a href="javascript:void(0)">删除</a></td>
  </tr>
  <tr>
    <td>Allen</td>
    <td>$3700</td>
    <td>2011-12-05</td>
    <td><a href="javascript:void(0)">删除</a></td>
  </tr>
  </tbody>
</table>

<script src="jquery-1.10.1.js"></script>
<script>
  // $("#data>tbody>tr:odd").addClass("odd")
  $("#data>tbody>tr:odd").attr('class', 'odd')
</script>
</body>
</html>

四、工具方法

在这里插入图片描述
在这里插入图片描述
实例:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>09_$工具方法</title>
</head>
<body>
<!--
1. $.each(): 遍历数组或对象中的数据
2. $.trim(): 去除字符串两边的空格
3. $.type(obj): 得到数据的类型
4. $.isArray(obj): 判断是否是数组
5. $.isFunction(obj): 判断是否是函数
6. $.parseJSON(json) : 解析json字符串转换为js对象/数组
-->
<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script type="text/javascript">
  // 1. $.each(): 遍历数组或对象中的数据
  var obj ={
    name:'Tom',
    setName:function (name) {
      this.name=name

    }
  }
  $.each(obj,function (key,value) {
    console.log(key,value)
  })


  // 2. $.trim(): 去除字符串两边的空格
  var str = '   hello '
  console.log($.trim(str))
  // 3. $.type(obj): 得到数据的类型
  var str2 = 33
  console.log($.type(str2))
  // 4. $.isArray(obj): 判断是否是数组
  console.log($.isArray(obj))//false
  var obj2 =[1,2,3,4]
  console.log($.isArray(obj2))//true
  // 5. $.isFunction(obj): 判断是否是函数
  console.log($.isFunction($))//true
  // 6. $.parseJSON(json) : 解析json字符串转换为js对象/数组
  // var json ="{'name':'Tom','age':'12'}"
  var json ='{"name":"Tom","age":"12"}'
  console.log("-----"+$.parseJSON(json))
  json ='[{"name":"Tom","age":"12"},{"name":"Tom","age":"19"}]'
  console.log("-----"+$.parseJSON(json))
</script>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值