web前端之jQuery补充

一、文档操作

1、文档操作示例

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>文档处理</title>
</head>
<body>
<button id="b1">新增</button>
<table border="1">
    <thead>
    <tr>
        <th>#</th>
        <th>姓名</th>
        <th>爱好</th>
        <th>操作</th>
    </tr>
    </thead>
    <tbody>
    <tr>
        <td>1</td>
        <td>Egon</td>
        <td>爬山</td>
        <td>
            <button>删除</button>
            <button>编辑</button>
        </td>
    </tr>
    </tbody>
</table>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script>
    // 找到新增按钮
    $("#b1").click(function () {
        // 生成一条数据
        var newTrEle = document.createElement("tr");
        $(newTrEle).html("<td>2</td> <td>Yuan</td> <td>游泳</td> <td><button>删除</button> <button>编辑</button></td>");
        // 把新创建的tr追加到tbody的最后
        $("tbody").append(newTrEle);
    });
    // 使用on方法做事件委派,否则新的数据删除操作不能成功
    $("tbody").on("click", ".delete", function () {
        // this指向的是实际触发事件的元素,删除按钮当前行数据
        $(this).parent().parent().remove();
    })
</script>
</body>
</html>

2、批量操作示例

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>批量操作示例</title>
</head>
<body>
<table border="1">
  <thead>
  <tr>
    <th>#</th>
    <th>姓名</th>
    <th>操作</th>
  </tr>
  </thead>
  <tbody>
  <tr>
    <td><input type="checkbox"></td>
    <td>Egon</td>
    <td>
      <select>
        <option value="1">上线</option>
        <option value="2">下线</option>
        <option value="3">停职</option>
      </select>
    </td>
  </tr>
  <tr>
    <td><input type="checkbox"></td>
    <td>Alex</td>
    <td>
      <select>
        <option value="1">上线</option>
        <option value="2">下线</option>
        <option value="3">停职</option>
      </select>
    </td>
  </tr>
  <tr>
    <td><input type="checkbox"></td>
    <td>Yuan</td>
    <td>
      <select>
        <option value="1">上线</option>
        <option value="2">下线</option>
        <option value="3">停职</option>
      </select>
    </td>
  </tr>
  <tr>
    <td><input type="checkbox"></td>
    <td>EvaJ</td>
    <td>
      <select>
        <option value="1">上线</option>
        <option value="2">下线</option>
        <option value="3">停职</option>
      </select>
    </td>
  </tr>
  </tbody>
</table>
<input type="button" id="b1" value="全选">
<input type="button" id="b2" value="取消">
<input type="button" id="b3" value="反选">
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script>
  var flag = false;
  $(window).keydown(function (event) {                  // shift按键按下的时候 把flag 设置 true
      if (event.keyCode === 16){
          flag = true;
      }
  });
  $(window).keyup(function (event) {                      // shift按键抬起来的时候 把flag设置成 false
      if (event.keyCode === 16 ){
          flag = false;
      }
  });
    $("select").change(function () {                   // 给 select 绑定 change 示例
      // 判断当前select 这一行的 checkbox有没有被选中
        var currentCheckbox  = $(this).parent().parent().find(":checkbox").prop("checked");
        if (flag && currentCheckbox){                    // 只有在批量操作模式下才进行后续操作
        var selectValue = $(this).val();                 // 取到当前select被选中的值
        $("input[type='checkbox']:checked").parent().parent().find("select").val(selectValue);  // 把所有checkbox被选中的那些行的select设置成相同值
        }
    });
    //全选
    $("#b1").click(function(){
        $("input[type='checkbox']").prop("checked",true);
    })
    //取消
    $("#b2").click(function () {
       $("input[type='checkbox']").prop("checked", false);
    });
    // 反选
    $("#b3").click(function(){
        $("input[type='checkbox']").each(function(){
            if ($(this).prop("checked")) {
                $(this).prop("checked",false);
            }else {
            $(this).prop("checked",true);
            }
        })
    })
</script>
</body>
</html>

3、hover事件示例

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>hover事件</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .nav {
            background-color: #4d4d4d;
            height: 50px;
        }
        .nav ul {
            list-style-type: none;
            float: right;
        }
        .nav li {
            line-height: 50px;
            float: left;
            padding: 0 10px;
            color: white;
            position: relative;
        }
        .son {
            height: 100px;
            width: 200px;
            background-color: blue;
            position: absolute;
            top: 50px;
            right: 0;
            display: none;
        }
        .clearfix:after {
            content: "";
            display: block;
            clear: both;
        }
        .hover .son {
            display: block;
        }
    </style>
</head>
<body>
<div class="nav clearfix">
    <ul>
        <li>登录</li>
        <li>注册</li>
        <li>购物车
            <p>空空如也~</p>
        </li>
    </ul>
</div>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script>
    $(".nav li").hover(
        function () {
            // 鼠标移上去要做的事儿
            $(this).addClass("hover");
        },
        function () {
            // 鼠标移出来要做的事儿
            $(this).removeClass("hover");
        }
    )
</script>
</body>
</html>

效果图:

二、jQuery动画效果

1、用法

// 基本
show([s,[e],[fn]])
hide([s,[e],[fn]])
toggle([s],[e],[fn])
// 滑动
slideDown([s],[e],[fn])
slideUp([s,[e],[fn]])                 //$("#i1").slideUp(2000)    2秒滑动到屏幕顶部消失
slideToggle([s],[e],[fn])
// 淡入淡出
fadeIn([s],[e],[fn])
fadeOut([s],[e],[fn])                   //$("#i1").fadeOut(2000)   2秒淡出屏幕
fadeTo([[s],o,[e],[fn]])                //$("#i1").fadeTo(2000,0.5)  2秒从当前状态到0.5的透明度状态
fadeToggle([s,[e],[fn]])
// 自定义(了解即可)
animate(p,[s],[e],[fn])             //$("#i1").animate({width:"800px"},2000)  2秒把元素变成宽度为800px大小

2、点赞动画示例

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta http-equiv="x-ua-compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>点赞动画示例</title>
  <style>
    div {
      position: relative;
      display: inline-block;
    }
    div>i {
      display: inline-block;
      color: red;
      position: absolute;
      right: -16px;
      top: -5px;
      opacity: 1;
    }
  </style>
</head>
<body>
<div id="d1">点赞</div>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script>
  $("#d1").on("click", function () {
    var newI = document.createElement("i");
    newI.innerText = "+1";
    $(this).append(newI);
    $(this).children("i").animate({
      opacity: 0
    }, 1000)
  })
</script>
</body>
</html>

三、each和data

1、.each()

.each(function(index, Element)):

描述:遍历一个jQuery对象,为每个匹配元素执行一个函数。

.each() 方法用来迭代jQuery对象中的每一个DOM元素。每次回调函数执行时,会传递当前循环次数作为参数(从0开始计数)。关键字 this 总是指向当前DOM元素。

// 为每一个li标签添加foo

$("li").each(function(){

$(this).addClass("c1");

});

注意: jQuery的方法返回一个jQuery对象,遍历jQuery集合中的元素 - 被称为隐式迭代的过程。当这种情况发生时,它通常不需要显式地循环的 .each()方法:

也就是说,上面的例子没有必要使用each()方法,直接像下面这样写就可以了:

$("li").addClass("c1");  // 对所有标签做统一操作

在遍历过程中可以使用 return false提前结束each循环。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>each循环示例</title>
    <style>
        .c1 {
            height: 100px;
            background-color: red;
            border-bottom: 1px solid black;
        }
    </style>
</head>
<body>
<div>111</div>
<div>222</div>
<div>333</div>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
</body>
</html>
var $divEles = $("div");
$divEles.each(function(){
    console.log(this);
})
$("div").each(function(){
    console.log(this);
})

显示结果:
<div>111</div>
<div>222</div>
<div>333</div>

2、.data()

在匹配的元素集合中的所有元素上存储任意相关数据或返回匹配的元素集合中的第一个元素的给定名称的数据存储的值。

.data(key, value):
$("div").data("k",100);         //给所有div标签都保存一个名为k,值为100
$("div").data("k");             //返回第一个div标签中保存的"k"的值
$("div").removeData("k");       //移除元素上存放k对应的数据

原文地址:http://blog.51cto.com/qidian510/2091364

时间: 2024-10-13 17:43:51

web前端之jQuery补充的相关文章

【Web前端】jQuery界面优化

随着互联网的发展,网站的前端界面会越来越重要,它关注的是用户的直接体验.市场上同类型的网站越来越多,一个比其他同类网站更流畅.优雅的界面能让用户摈弃你的竞争对手.所以,让自己的网站前端运行的更快.界面更优美成为了一个重要的话题.从而,前端界面优化技术也成为了优秀前端开发人员必备的技能,这是核心竞争力. 今天介绍的是jQuery这个流行的前端javascript开发框架里的一些优化技术,这些优化技术需要我们深入理解JavaScript以及Web浏览器中DOM与JavaScript引擎关系. 减少D

10个极客Web前端开发jquery资源大荟萃

1.基于TweenMax.js的网页幻灯片 今天给大家带来一款基于TweenMax.js的网页幻灯片.这款幻灯片以不规则的碎片百叶窗的形式切换.切换效果非常漂亮. 在线演示 源码下载 2.pagePiling.js - 创建漂亮的全屏滚动效果 全屏滚动效果是最近非常流行的网页设计形式,带给用户良好的视觉和交互体验.pagePiling.js 这款 jQuery 插件可以帮助前端开发人员轻松实现这种效果. 在线演示 源码下载 3.使用 CSS3 伪元素实现立体的照片堆叠效 CSS3 里引入的伪元素

10款web前端基于jquery超实用jQuery插件大合集

1.纯CSS3实现多种箭头绘制及动画 今天要介绍的这款CSS3应用也非常实用,利用它可以用纯CSS3实现各种箭头的绘制,包括左右箭头.上下箭头以及各个方向的转弯箭头,另外还有一款更酷的CSS3箭头动画特效,可以用来做Loading加载动画.这么多箭头,你可以任选一个应用到项目中去. 在线演示 源码下载 2.基于jquery的手风琴显示详情 今天要各网友分享一款基于jquery的手风琴显示详情实例.当单击顶部箭头的时候,该项以手风琴的形式展示显示详情. 在线演示 源码下载 3.纯CSS3实现眨眼动

10款web前端超实用jQuery插件大合集

1.HTML5截图功能 可拖拽图片 截图在我们平常电脑应用中非常的广泛,包括开发者和一般的使用用户.今天介绍的这款HTML5截图应用可以帮助你在上传头像前截取自己的头像,你只需要拖拽移动图片即可选中要截取的部分,HTML5会自动将选取的图片自动生成一张新的图片来保存,从而完成截图的功能.另外,该HTML5截图应用还支持按住shift键实现图片同比例缩放. 在线演示 源码下载 2.纯CSS3动画按钮效果 5种漂亮样式 这次我们要来分享一款很不错的CSS3按钮动画,这款CSS3按钮一共有5种动画方式

超炫酷web前端的jQuery/HTML5应用搜罗

作为前端开发者,我们肯定都使用过非常多的jQuery插件,毋庸置疑,jQuery非常流行,尤其是结合HTML5和CSS3以后,让这些jQuery插件有了更多地动画效果,更为绚丽多彩. 1.HTML5/CSS3一组可爱的3D按钮 这是一款利用HTML5和CSS3制作而成的按钮组合,这款CSS按钮非常具有个性化.该CSS3按钮不仅具有3D的外观,点击按钮也具有非常立体的效果,更具有特点的是这款CSS3按钮的形状是不规则的,而且按钮中都有一个可爱的小图标. 在线演示 源码下载 2.jQuery Doc

10个web前端基于jQuery动画插件及源码

1.超赞的页面加载进度自动指示和 Ajax 导航效果 在页面中引入 Pace.js 和您所选择主题的 CSS 文件,就可以让你的页面拥有漂亮的加载进度和 Ajax 导航效果.不需要挂接到任何代码,自动检测进展.您可以选择颜色和多种效果,有简约,闪光灯,MAC OSX,左侧填充,顶部填充,计数器和弹跳等等. 在线演示 源码下载 2.ProgressBar.js – 漂亮的响应式 SVG 进度条 ProgressBar.js 是一个借助动态 SVG 路径的漂亮的,响应式的进度条效果.使用 Progr

10个web前端基于jQuery和css3动画插件及源码

1.jQuery横向手风琴图片展示插件 今天我们要来介绍一款非常酷的jQuery插件,它是一款横向的手风琴图片展示切换插件,每一张图片初始都是水平层叠在一起,点击图片后即可切换至下一张,并且在图片切换时出现水平移动的动画特效.另外你可以定义任意数量的图片应用在这个手风琴图片插件中. 在线演示 源码下载 2.纯css3实现的鼠标经过按钮特效 今天再给大家带来一款纯css3实现的鼠标经过按钮特效.这款按钮非常简单,但效果很好,非常漂亮. 在线演示 源码下载 3.FreeIconMaker - 在线创

Web前端基础——jQuery(一)

前几天回老家呆了几天,几乎没有怎么学习新的知识,这期间一直有断断续续的看<Java编程思想>,还刷了一些前沿消息,也算没闲着.今天开始学习jQuery啦,继续前进. 在网上查了,买了这本书.现在是一边搜视频,一边看这本书. 认识jQuery,我将从以下几方面进行讲解. 一.JavaScript和JavaScript库 随着Web 2.0的兴起,JavaScript受重视的程度提高,带动JavaScript程序库也蓬勃发展起来. 过程:Prototype->Dojo->jQuery-

10款web前端基于Jquery的动画源码

1.使用 CSS3 动感的图片标题动画效果 在网站中,有很多地方会需要在图片上显示图片标题.使用 CSS3 过渡和变换可以实现动感的鼠标悬停显示效果.没有使用 JavaScript,所以只能在支持 CSS3 动画的现代浏览器中才能正常工作.您可以查看网页的源代码,了解动画是如何工作的. 在线演示 源码下载 2.简单的轻量级的 jQuery 仪表板插件 sDashboard 是一个轻量的仪表板 jQuery 插件,转换一个对象数组到仪表板.数组中的每个对象将被呈现为一个仪表板组件,可以通过左右拖