首页

table中td超出内容隐藏,鼠标悬停全部显示(完整版,含js代码)

前端达人

一、CSS语法:
text-overflow:clip | ellipsis
默认值:clip
适用于:所有元素
clip: 当对象内文本溢出时不显示省略标记(...),而是将溢出的部分裁切掉。
ellipsis: 当对象内文本溢出时显示省略标记(...)。
在使用的时候,有时候发现不会出现省略标记效果,经过测试发现,使用ellipsis的时候,必须配合overflow:hidden; white-space:nowrap; width:50%;这三个样式共同使用才会有效果
 
实例:
复制代码
table { width: 100%; float: left; table-layout:fixed; width:500px; border:1px solid #ccc;
        } table tr { line-height: 25px; border:1px solid #ccc;
            } table td { border:1px solid #ccc; text-align:center;
            } .MHover{ border:1px solid #ccc; white-space:nowrap; text-overflow:ellipsis; overflow:hidden;
            }
复制代码
二、HTML代码
复制代码
<table> <tr> <th>姓名</th> <th>个性签名</th> <th>性别</th> </tr> <tr> <td>张国荣</td> <td> <div class="MHover">我就是我,是颜色不一样的烟火!</div> <div class="MALL">我就是我,是颜色不一样的烟火!</div> </td> <td></td> </tr> </table>
复制代码
注:class="MHover"为表格里显示的内容,内容长度超多指定宽度时隐藏多余字段,并在后面加...
class="MALL"为鼠标悬停显示的内容。
三、js代码
复制代码
$(document).ready(function () {
            $(".MALL").hide();
            $(".MHover").mouseover(function (e) {
                $(this).next(".MALL").css({"position":"absolute","top":e.pageY+5,"left":e.pageX+5}).show();
            });
            $(".MHover").mousemove(function (e) {
                $(this).next(".MALL").css({ "color": "fff", "position": "absolute", "opacity": "0.7", "background-color": "666", "top": e.pageY + 5, "left": e.pageX + 5 });
            });
            $(".MHover").mouseout(function () {
                $(this).next(".MALL").hide();
            });
        });
复制代码
注:class="MHover"为表格里显示的内容,内容长度超多指定宽度时隐藏多余字段,并在后面加...
class="MALL"为鼠标悬停显示的内容。


蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码ben_lanlan,报下信息,会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

文章来源:博客园

分享此文一切功德,皆悉回向给文章原作者及众读者.
免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

 


jquery取点击位置是table中的第几行第几列

前端达人

$('table tr td').click(
  function()
  {
   alert( $(this).parent().parent().find("tr").index($(this).parent()[0]));//第几行
   alert($(this).index());//第几列
  }
);

 

 

 

$('table tr td').click(
  function()
  {
   var i = $(this).parent().parent().find("tr").index($(this).parent()[0]);//第几行
   alert($("table:eq(0) tr:eq("+i+") td:eq(0)").text());//取点击行第一列的值
  }
);

分类: JavaScript


蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码ben_lanlan,报下信息,会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

文章来源:博客园

分享此文一切功德,皆悉回向给文章原作者及众读者.
免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

jquery、js获取table,遍历输出tr中各个td的内容。

前端达人

首先,依赖jquery..

复制代码
1 $('#btntb').click(function(){ 2 $('#tab tr').each(function(i){ // 遍历 tr 3 $(this).children('td').each(function(j){ // 遍历 tr 的各个 td 4 alert("第"+(i+1)+"行,第"+(j+1)+"个td的值:"+$(this).text()+"。"); 5  }); 6  }); 7 });
复制代码

js的方法

复制代码
var tb = document.getElementById('tab'); // table 的 id var rows = tb.rows; // 获取表格所有行 for(var i = 0; i<rows.length; i++ ){ for(var j = 0; j<rows[i].cells.length; j++ ){ // 遍历该行的 td alert("第"+(i+1)+"行,第"+(j+1)+"个td的值:"+rows[i].cells[j].innerHTML+"。"); // 输出每个td的内容  }
}
复制代码

Html代码

复制代码
<div align="center"> <table id="tab" border="1" align="center"> <tr> <td>西瓜</td> <td></td> </tr> <tr> <td>芒果</td> <td>桔子</td> </tr> <tr> <td>奇异果</td> <td>葡萄</td> <td>西柚</td> </tr> </table> <br> <button id="btntb">遍历table</button> </div>
复制代码

 

蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码ben_lanlan,报下信息,会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

文章来源:博客园

分享此文一切功德,皆悉回向给文章原作者及众读者.
免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

jquery,ajax请求并处理跨域

前端达人

自己写了段jquery的ajax请求,并输出到页面的表格中



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jQuery实现JSONP</title>
</head>
<body>
<div id="mydiv">
    <button id="btn">点击</button>

    <div id="container">
        <!--每个条目-->
        <div class="item">
            <div class="item-title">作业名字</div>
            <div>
                <span class="item-content">创建时间</span>
                <span class="item-content">发布老师</span>
            </div>
        </div>
    </div>
</div>
</body>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
<script type="text/javascript">
    $(function(){
        $("#btn").click(function(){

            $.ajax({
                async : true,
                url : "xxxxxxxxxxx",
                type : "GET",
                dataType : "json", // 返回的数据类型,设置为JSONP方式
                jsonp : 'callback', //指定一个查询参数名称来覆盖默认的 jsonp 回调参数名 callback
                jsonpCallback: 'handleResponse', //设置回调函数名
                data : {
                    q : "javascript",
                    count : 1,
                    city:'北京'
                },
                success: function(response, status, xhr){
                    // console.log('状态为:' + status + ',状态是:' + xhr.statusText);
                    // console.log(response);

                    var group = response.hourly_forecast;

                    console.log(group,111111111)
                    console.log(group.length,222222222222)

                    //拼接字符串
                    var str = '';
                    //对数据做遍历,拼接到页面显示
                    for(var i=0;i<group.length;i++){
                        str += '<div class="item">'+
                                '<div class="item-title">'+ group[i].date +'</div>'+
                                '<div>'+
                                '<span class="item-content">'+ group[i].hum +'</span>'+
                                '<span class="item-content">'+ group[i].pop +'</span>'+
                                '</div>'+
                                '</div>';
                    }
                    //放入页面的容器显示
                    $('#container').html(str);

                }
            });
        });
    });

    function handleResponse(response){
        // 对response数据进行操作代码
        alert("jsonp success!");
    }
</script>
</html>


jquery中ajax处理跨域的三大方式


一、处理跨域的方式:

1.代理

2.XHR2

HTML5中提供的XMLHTTPREQUEST Level2(及XHR2)已经实现了跨域访问。但ie10以下不支持

只需要在服务端填上响应头:

header("Access-Control-Allow-Origin:*");

/*星号表示所有的域都可以接受,*/

header("Access-Control-Allow-Methods:GET,POST");

        

3.jsonP

原理:

 ajax本身是不可以跨域的, 通过产生一个script标签来实现跨域。因为script标签的src属性是没有跨域的限制的。

其实设置了dataType: 'jsonp'后,$.ajax方法就和ajax XmlHttpRequest没什么关系了,取而代之的则是JSONP协议。JSONP是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问。

 ajax的跨域写法:

(其余写法和不跨域的一样):

比如 


jQuery超详细总结

前端达人

jQuery超详细总结

文章目录

jQuery超详细总结

一 选择器

特殊选择器

二 筛选器

用在 jQuery 选择的元素后面

都是方法,对选择出来的元素进行二次筛选

三 文本操作

总结

四 元素类名操作

五 元素属性操作

在 H5 的标准下, 给了一个定义, 当你需要写自定义属性的时候,最好写成 data-xxx="值",当大家看到 data-xxx 的时候, 就知道这是一个自定义属性

六 元素样式操作

七 绑定事件

  1. on()方法是专门用来绑定事件
  2. one() 方法是专门用来绑定一个只能执行一次的方法
  3. off() 方法是专门用来解绑一个元素的事件的
  4. trigger() 方法是专门用来触发事件的方法
  5. hover()
  6. 常用事件

    八 节点操作
  7. 创建节点
  8. 插入节点
  9. 删除节点
  10. 替换节点
  11. 克隆节点

    九 获取元素尺寸

    尺寸: 元素的占地面积

    三套方法, 四种使用方式

    十 获取元素位置
  12. offset()
  13. position()

    十一 获取卷去的尺寸(页面滚动条)

    scrollTop()

    scrollLeft()

    十二 jQuery中的函数

    ready() 事件

    each() 方法

    十三 jQuery中的动画

    让元素出现不同的移动, 改变

    标准动画

    折叠动画

    渐隐渐显动画

    综合动画

    停止动画

    十四 jQuery发送ajax请求

    jQuery 里面帮我们封装好了几个方法

    专门用来发送 ajax 请求的

    jQuery 发送一个 GET 请求

    jQuery 发送一个 POST 请求

    jQuery 的 $.ajax 方法

    jQuery 的 ajax 全局钩子函数

    十五 jQuery 发送一个 jsonp 请求

    十六 jQuery 的多库并存机制

    十七 jQuery 的插件扩展机制

    十八 jQuery 的拷贝对象问题

    十九 jQuery 的插件

    jQuery 是一个前端库,也是一个方法库

    他里面封装着一些列的方法供我们使用

    我们常用的一些方法它里面都有,我们可以直接拿来使用就行了

    jQuery 之所以好用,很多人愿意使用,是因为他的几个优点太强大了

    优质的选择器和筛选器

    好用的隐式迭代

    强大的链式编程

    因为这些东西的出现,很多时候我们要做的事情被 “一行代码解决”

    接下来我们就来认识一下 jQuery

    一 选择器

    $()

    css怎么获取元素这里就怎么写

    获取的是一组元素,当里面是id时,这组元素只有一个内容

    特殊选择器

    :first $('li:first') 获取元素集合里的 第一个元素

    //  console.log($('li:first'))

    1

    :last $('li:last') 获取元素集合里的 最后一个元素

    :eq() $('li:eq()')获取元素集合里 索引为n 的那个元素,索引从0开始

    :odd $('li:odd') 获取所有索引为 奇数 的元素

    :even $('li:even') 获取所有索引为 偶数 的元素

    二 筛选器

    用在 jQuery 选择的元素后面

    都是方法,对选择出来的元素进行二次筛选

    first() 筛选 元素集合里面的 第一个元素

    //  console.log($('li').first())

    1

    last() 筛选 元素集合里面的 最后一个元素

    eq(n) 筛选元素集合里 索引为n 的那个元素

    next() 筛选出来 元素 的下一个 兄弟元素

    nextAll() 筛选出 元素后面的 所有 兄弟元素

    nextAll(选择器) 筛选出元素后面的 所有兄弟元素 中符合选择器的元素

    nextUntil(选择器) 筛选出 元素后面的所有兄弟元素 直到 选中的元素为止 不包含选中的元素

    //  console.log($('span').nextUntil('.a10'))

    1

    prev() 筛选出来 元素 的上一个 兄弟元素

    prevAll() 筛选出 元素上面的 所有 兄弟元素 (元素集合中的元素 从上一个兄弟元素开始排序)

    prevAll(选择器) 筛选出 元素上面的 所有兄弟元素 中符合选择器的元素

    prevUntil(选择器) 筛选出 元素上面的所有兄弟元素 直到 选中的元素为止 不包含选中的元素

    //  console.log($('span').prevUntil('.a10'))

    1

    parent() 筛选出元素的 父元素

    parents()筛选出元素的 所有祖先元素 直到html元素

    parents(选择器)拿到 所有祖先元素中的符合选择器的元素

    parentsUntil(选择器)筛选出元素的 所有的祖先元素 直到某一个元素 不包含该元素

    //  console.log($('span').parents('body'))

    // console.log($('span').parentsUntil('html'))



    children() 筛选出元素的 所有子级元素



    children(选择器) 筛选出元素 所有子级元素中的 符合选择器的元素

    siblings() 筛选出所有的兄弟元素 不包含 自己



    siblings(选择器) 筛选出所有的兄弟元素中的 符合选择器的元素

    find(选择器)



    筛选 一个元素后代中的 符合选择器的元素

    在一个元素集合的每一个元素中 查找后代元素 符合选择器的元素

    index() 获取元素的索引位置



    索引位置是指 是该父元素下的第几个元素 拿到的是 数字

    三 文本操作

    html() 一个读写的属性

    html()不传递 参数的时候 就是获取元素内部的超文本内容

    html(参数)传递 参数的时候 就是设置元素内部的超文本内容

    text() 一个读写的属性

    text()不传递 参数的时候 就是获取元素内部的超文本内容

    text(参数)传递 参数的时候 就是设置元素内部的超文本内容

    val() 一个读写的属性 操作 input 标签

    val()不传递参数的时候, 就是获取标签的 value 值

    val(参数)传递一个参数的时候, 就是设置标签的 value 值

    总结

    获取

    html() 只能获取第一个元素的超文本内容

    text() 能获取元素集合内所有元素的文本内容合

    val() 只能获取第一个元素的 value 值

    设置

    html() 给元素集合内所有元素设置超文本内容

    text() 给元素集合内所有元素设置文本内容

    val() 给元素集合内所有元素设置 value 值

    四 元素类名操作

    addClass() 添加类名

    执行这个方法会给元素集合里面所有的元素添加上固定的类名

    如果有就不添加, 不存在这个类名时添加

    removeClass() 移除类名

    执行这个方法删除 元素集合里面所有元素 的指定类名

    toggleClass()切换类名

    执行这个方法会给元素集合里面的所有元素切换类名

    本身存在这个类名, 删除类名

    本身不存在这个类名, 添加类名

    hasClass() 判断有没有某一个类名

    返回的时一个布尔值, 表示这个类名是否存在

    五 元素属性操作

    在 H5 的标准下, 给了一个定义, 当你需要写自定义属性的时候,最好写成 data-xxx=“值”,当大家看到 data-xxx 的时候, 就知道这是一个自定义属性

    attr() 和 removeAttr()



    attr: attribute 属性

    attr()

    是一个读写的方法

    attr(要读取的属性名): 传递一个参数的时候是读取

    attr(属性名, 属性值): 传递两个参数的时候是设置

    removeAttr() 专门用来移除属性的

    attr 这套方法的注意:

    所有的属性都会显示在标签上(原生属性和自定义属性)

    不管你设置的是什么数据类型, 都会给你变成字符串

    removeAttr 删除 attr 设置的属性, 有多少删除多少(针对自定义属性)

    prop() 和 removeProp()



    prop: property 属性

    prop()

    一个读写的方法

    prop(要读取的属性名): 传递一个参数的时候是读取

    prop(属性名, 属性值): 传递两个参数的时候是设置

    removeProp()专门用来移除属性的

    prop 这套方法的注意:

    非原生属性, 不会显示在标签上, 但是你可以获取使用

    你存储的是什么数据类型, 获取的时候就是什么数据类型

    removeProp 删除 prop 设置的属性, 有多少删除多少(针对自定义属性)

    removeProp() 不能删除原生属性 id class style 等等

    data() 和 removeData()



    data: data 数据

    data()

    一个读写的方法

    data(要读取的属性名): 传递一个参数的时候是读取

    data(属性名, 属性值): 传递两个参数的时候是设置

    removeData() 专门用来删除数据的

    data 这套方法的注意:

    和元素的原生属性没有关系, 可以设置 id, 但是和元素的 id 没关系

    就是在元素身上给你开辟一个地方, 存储一些数据

    你设置的是什么数据类型, 拿到的就是什么数据类型

    removeData 删除 data 设置的属性

    data() 方法也能读取写在标签上的 H5 标准自定义属性

    三个方法存储内容

    attr 设置的自定义属性存储在标签身上

    prop 设置的自定义属性存储在元素对象里面

    data 设置的自定义属性存储在元素对象里面单独开辟的一个对象

    六 元素样式操作

    css()

    一个读写的属性

    不同操作需要 传递 不同的参数

    css('样式名称')

    css('width')

    获取元素的样式值, 不管是行内样式还是非行内样式都能获取

    css('样式名称', '样式的值')

    css('width', '200px')

    设置元素的样式值, 元素集合能获取多少个元素就置多少个元素

    设置的时候, 所有的单位都可以不写, 默认添加 px为单位

    css(对象)

    css({ width: 100, 不写单位默认是 px height: '200px', opacity: 0.5 })

    批量设置 css 样式

    给元素集合里面的所有元素, 批量设置样式

    七 绑定事件
  14. on()方法是专门用来绑定事件

    jQuery 里面通用的事件绑定方式

    不同操作 传递 不同参数

    on方法的各种参数描述

    on('事件类型', 事件处理函数)

    给元素集合内所有的元素绑定一个事件

    // 给 $('li') 获取到的所有元素绑定一个点击事件

        // $('li').on('click', function () {

        //   console.log('我被点击了')

        // })



    on('事件类型', '事件委托', 事件处理函数)

    把 事件委托 位置的元素的事件 委托给了前面元素合

        // 给所有的 li 标签设置事件委托, 委托给了 ul

        // $('ul').on('click', 'li', function () {

        //   console.log('我被点击了, 事件委托')

        // })



    on('事件类型', 复杂数据类型, 事件处理函数)

    给每一个元素绑定一个事件, 复杂数据类型是发事件时候传递的参数

     //   每一个 li 点击的时候, 都能得到中间那个对象

        //   就是事件对象了面

        // $('li').on('click', { name: 'Jack', age: 18 }, function (e) {

        //   console.log('我被点击了, li')

        //   console.log(e)

        // })

    1

    2

    3

    4

    5

    6

    on('事件类型', '事件委托', 任意数据类型, 件处函数)

    做一个事件委托的形式, 第三个参数位置的数据

    是触发事件的时候, 可以传递进去的数据

    on(对象)

    给一个元素绑定多个事件的方式 不能传参数

     // $('ul').on({

        //   click: function () { console.log('点击事件') },

        //   mouseover: function () { console.log('移入事件') },

        //   mouseout: function () { console.log('移出事件') }

        // })


  15. one() 方法是专门用来绑定一个只能执行一次的方法

    传递的参数个数和意义 于 on 方法一摸一样

    绑定上的事件只能执行一次
  16. off() 方法是专门用来解绑一个元素的事件的

    使用方式

    off('事件类型') : 给该事件类型的所有事件处理函数解绑

    off('事件类型', 事件处理函数) : 解绑指定事件处理函数

    注意:on 和 one 绑定的事件它都能移除
  17. trigger() 方法是专门用来触发事件的方法

    不通过点击, 通过代码把事件触发了

    trigger('事件类型') : 把该元素的事件给触发了
  18. hover()

    jQuery 里面唯一一个很特殊的事件函数

    表示一个鼠标悬停动作

    只有一个使用方式

    hover(鼠标移入的时候触发, 鼠标移出的时候触发)

     // hover 事件

        //   如果你只传递一个函数, 那么移入移出都触发这一个函数

        $('ul')

          .hover(

            function () { console.log('鼠标移入') },

            function () { console.log('鼠标移出') }

          )


  19. 常用事件

    jQuery 把一些常用事件直接做成了函数



    click()

    mouseover()

    . . . . . .

    直接使用就可以了



    使用 click 举一个例子



    click(事件处理函数)

    click(参数, 事件处理函数)

    参数: 触发事件的时候传递到事件里面的数据

        // 常用事件

        // 给 ul 绑定了一个点击事件

        // $('ul').click([1, 2, 3, 4, true], function (e) {

        //   console.log('你好 世界')

        //   console.log(e)

        // })

    1

    2

    3

    4

    5

    6

    八 节点操作
  20. 创建节点

    对应原生 js 里面的 createElement()

    $('html 格式的文本')

    // 创建一个 div 元素

        console.log($('<div>我是一个创建出来的节点</div>'))

    1

    2
  21. 插入节点

    对应原生 js 里面的 appendChild()

    内部插入

    放在页面元素的子元素位置, 放在末尾

    页面元素.append(要插入的元素)

    要插入的元素.appendTo(页面元素)

    放在页面元素的子元素位置, 放在最前

    页面元素.prepend(要插入的元素)

    要插入的元素.prependTo(页面元素)

    外部插入

    放在页面元素的下一个兄弟元素位置

    页面元素.after(要插入的元素)

    要插入的元素.insertAfter(页面元素)

    放在页面元素的上一个兄弟元素位置

    页面元素.before(要插入的元素)

    要插入的元素.insertBefore(页面元素)
  22. 删除节点

    对应原生 js 里面的 removeChild()

    页面元素.empty() -> 把自己变成空标签,将所有子元素移除

    页面元素.remove() -> 把自己移除

    没有删除某一个子节点的方法,因为 jQuery 的选择器的强大,直接找到要删除的节点, remove()
  23. 替换节点

    对应原生 js 里面的 replaceChild()

    页面元素.replaceWith(替换元素)

    替换元素.replaceAll(页面元素)
  24. 克隆节点

    对应原生 js 里面的 cloneNode()

    元素.clone()

    两个参数的值为 true或false

    第一个参数: 自己的事件是否克隆

    第二个参数: 子节点的事件是否克隆

    如果第一个参数的值为false,那么第二个参数不起作用,没有意义。

    不管你是否传递参数, 都会把所有后代元素都克隆下来

    元素 + 文本内容 + 属性 + 行内样式

    参数只决定是否克隆元素身上的事件

    九 获取元素尺寸

    尺寸: 元素的占地面积

    width 和 height

    padding

    border

    margin

    三套方法, 四种使用方式

    这些方法都是不考虑盒模型的状态(不管是什么型, 都是固定区域)

    width() 和 height()

    获取元素的 内容 区域的尺寸

    innerWidth() 和 innerHeight()

    获取元素的 内容 + padding 区域的尺寸

    outerWidth() 和 outerHeight()

    获取元素的 内容 + padding + border 区域的尺寸

    outerWidth(true) 和 outerHeight(true)

    获取元素的 内容 + padding + border + margin 区域的尺寸

    十 获取元素位置
  25. offset()

    offset: 偏移量

    是一个读写的属性

    读取

    不传递参数就是读取

    读到的元素相对于页面的位置关系

    返回值是一个对象 { left: xxx, top: xxx }

    书写

    传递一个对象就是写入 { left: xxx, top: xxx }

    注意: 绝对写入

    不管你本身和页面的尺寸是什么样,写多少就是多少
  26. position()

    postition: 定位

    只读的方法

    读取:

    元素相对于定位父级的位置关系

    得到的也是一个对象 { left: xxx, top: xxx }

    如果你写的是 right 或者 bottom, 会自动计算成 left 和 top 值给你

    十一 获取卷去的尺寸(页面滚动条)

    scrollTop()

    原生 js 里面 document.documentElement.scrollTop

    读写的方法

    不传递参数的时候就是获取卷去的高度

    传递一个参数就是设置卷去的高度

    scrollLeft()

    原生 js 里面 document.documentElement.scrollLeft

    读写的方法

    不传递参数的时候就是获取卷去的宽度

    传递一个参数的时候就是设置卷去的宽度

    十二 jQuery中的函数

    ready() 事件

    类似于 window.onload 事件,但是有所不同

    window.onload 会在页面所有资源加载行

    ready() 会在页面 html 结构加载完毕后执行

    也叫做 jQuery 的入口函数

    有一个简写的形式 $(function () {})

    each() 方法

    类似于 forEach(), 遍历数组的

    jQuery 的元素集合, 是一个 jQuery 数组, 不是一个数组, 不能使用 forEach()

    forEach语法: forEach(function (item, index) {})

    each语法:each(function (index, item) {})

    比较少用到, 因为 jQuery 隐式迭代 自动遍历

    十三 jQuery中的动画

    让元素出现不同的移动, 改变

    transition -> 过渡动画

    animation -> 帧动画

    标准动画

    show() 显示元素

    语法: show(时间, 运动曲线, 运动结束的函数)

    hide() 隐藏元素

    语法: hide(时间, 运动曲线, 运动结束的函数)

    toggle() 改变元素显示或隐藏(如果显示就隐藏,如果隐藏就显示)

    语法: toggle(时间, 运动曲线, 运动结束的函数)

    三个方法的参数都可以选填,不需要每个都填写

    折叠动画

    slideDown() 下滑显示

    语法: slideDown(时间, 运动曲线, 运动结束的函数)

    slideUp() 上滑隐藏

    语法: slideUp(时间, 运动曲线, 运动结束的函数)

    slideToggle() 切换滑动和隐藏

    语法: slideToggle(时间, 运动曲线, 运动结束的函数)

    渐隐渐显动画

    实质是透明的opacity的变化

    fadeIn() 逐渐显示

    fadeIn(时间, 运动曲线, 运动结束的函数)

    fadeOut() 逐渐消失

    fadeOut(时间, 运动曲线, 运动结束的函数)

    fadeToggle() 切换显示和消失

    fadeToggle(时间, 运动曲线, 运动结束的函数)

    以上三个方法的参数,均有默认值

    fadeTo() 设置元素透明度变为你指定的数字

    fadeTo(时间, 你指定的透明度, 运动曲线, 运动结束的函数)

    综合动画

    animate()

    基本上大部分的 css 样式都可以动画

    transform 不行, 颜色不行

    语法: animate({}, 时间, 运动曲线, 运动结束的函数)

    { }里面就写你要运动的 css 属性,默认单位为px

    停止动画

    让当前的动画结束

    因为 jQuery 的动画你一直点击,就会一直触发。即使不再点击让事件发生,还是会把没执行完的动画执行完毕。

    你点击 10 次, 他就会触发 10 次, 直到 10 次全都完毕才结束

    stop()

    当这个函数触发的时候, 就会让运动立刻停下来

    你运动到哪一个位置了就停止在哪一个位置

    finish()

    当这个函数触发的时候, 就会让运动立刻停下来

    不管你运动到了哪一个位置, 瞬间到达运动完成位置

    十四 jQuery发送ajax请求

    jQuery 里面帮我们封装好了几个方法

    专门用来发送 ajax 请求的

    $.get() -> 专门用来发送 get 请求的

    $.post() -> 专门用来发送 post 请求的

    $.ajax() ->

    发送什么请求都可以(get, post, put, delete)

    并且还可以发送一个 jsonp 请求

    jQuery 发送一个 GET 请求

    语法: $.get(请求地址, 需要携带到后端的参数, 成功的回调函数, 期望后端返回的数据类型)

    请求地址: 你要请求的后端接口地址(必填)

    携带参数: 你需要给后端传递的参数

    可以是一个固定格式的字符串 ‘key=value&key=value’

    也可以是一个对象 { a: 100, b: 200 }

    成功回调: 当请求成功的时候会执行的函数

    期望数据类型: 就是你是不是需要 jQuery 帮你解析响应体

    • 默认是不解析
    • 当你传递一个 ‘json’ 的时候, 会自动帮你执行 JSON.parse()

          // 打开页面就发送 GET 请求了

          // $.get('./server/get.php', 'a=100&b=200', function (res) {

          //   // res 就是后端返回的数据, 也就是响应体

          //   // console.log(JSON.parse(res))

          //   console.log(res)

          // }, 'json')



          // $.get('./server/get.php', { a: 300, b: 400 }, res => {

          //   console.log(res)

          // }, 'json')

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      jQuery 发送一个 POST 请求

      语法: $.post(请求地址, 需要携带到后端的参数, 成功的回调函数, 期望后端返回的数据类型)

      四个参数和 $.get 是一摸一样的

          // 打开页面就发送 POST 请求了

          // $.post('./server/post.php', 'c=hello&d=world', function (res) {

          //   console.log(res)

          // }, 'json')



          // $.post('./server/post.php', { c: '你好', d: '世界' }, res => {

          //   console.log(res)

          // }, 'json')



      jQuery 的 $.ajax 方法

      用来发送综合 ajax 请求的(GET, POST, PUT, …)

      语法: $.ajax(对象)对象是对本次请求的所有配置
    • $.ajax({

          url: '', // => 请求地址(必填)

          type: '', // => 请求方式(GET, POST, ...) 默认是 GET

          data: '', // => 携带到后端的参数

          dataType: '', // => 期望后端返回的数据类型, 默认不解析

          async: true, // => 是否异步, 默认是 true

          success: function () {}, // => 成功的回调

          error: function () {}, // => 失败的回调

          timeout: 数字, // 单位是 ms, 超时时间(超过你写的时间没有响应, 那么就算失败)

          cache: true, // 是否缓存, 默认是 true

          context: 上下文, // 改变回调函数里面的 this 指向

                  ...

                })



      $.ajax 里面失败的回调



      不光是请求失败的时候会触发

      jQuery 认定失败就是失败

      当 dataType 写成 json 的时候, jQuery 会帮我们执行 JSON.parse()

      当后端返回一个不是 json 格式的字符串的时候

      执行 JSON.parse() 就会报错

      也会执行失败的回调, 请求虽然成功, 但是解析失败了, 也是失败

      JSON.parse(‘你好 世界’) -> 就会报错了

      $.ajax 里面是否缓存的问题



      这个请求要不要缓存

      当两次请求地址一样的时候, 就会缓存

      如果你写成 false, 表示不要缓存

      jQuery 就会自动再你的请求后面加一个参数 =时间戳

      第一次请求 ./server/get.php?
      =11:10:01.325的时间戳

      第二次请求 ./server/get.php?_=11:10:02.326的时间戳

      $.ajax 里面的回调 this 指向问题



      ajax 的回调里面默认 this 指向被 jQuery 加工过的 ajax 对象

      context 的值你写的是谁, 回调函数里面的 this 就时谁

      $.ajax 里面的请求方式的问题



      $.ajax 这个方法里面, type 表示请求方式

      jQuery 还给了我们一个参数叫做 method,也表示请求方式

      当你写请求方式的时候

      可以写成 type: ‘POST’

      也可以写成 method: ‘POST’

      $.ajax 里面的接收响应的问题(2015年以后的版本才有 promise 的形式)



      jQuery 默认把 ajax 封装成了 promsie 的形式

      你可以用 success 选项接收成功的回调

      也可以用 .then() 的方式接收响应

      jQuery 的 ajax 全局钩子函数

      钩子: 挂在你的身上, 你的所有动作都和它有关系

      这些全局函数都是挂在 ajax 身上的, 这个 ajax 的每一个动作都和全局函数有关系

      全局的钩子函数

      1.ajaxStart()

      会在同一个作用域下多个 ajax 的时候, 第一个 ajax 之前开始的时候触发

      如果有多个 ajax 他只触发一次

      2.ajaxSend()

      每一个 ajax 再发送出去之前, 都会触发一下

      xhr.send() 之前触发

      ajaxSuccess()

      每一个 ajax 再成功的时候触发

      只要有一个 ajax 成功了就会触发

      ajaxError()

      每一个 ajax 再失败的时候触发

      只要有一个 ajax 失败了就会触发

      ajaxComplete()

      每一个 ajax 完成的时候触发

      只要有一个 ajax 完成了, 不管成功还是失败, 都会触发

      ajaxStop()

      会在同一个作用域内多个 ajax 的时候, 最后一个 ajax 完成以后触发

      如果有多个 ajax 它只触发一次

      作用: 通常用来做 loading 效果

       <img src="./loading.gif" alt="">

      // 利用ajax钩子函数 做一个lading效果  等待页面

       // 提前利用钩子函数准备 loading 效果

          // 每一次发送出去的时候都要显示图片

          $(window).ajaxSend(() => {

            $('img').show()

          })



          // 每一次完成的时候都要图片再隐藏起来

          $(window).ajaxComplete(() => {

            $('img').hide()

          })



          // 每次点击按钮的时候都会发送一个 ajax 请求

          $('button').click(() => {

            // 发送一个 ajax 请求

            $.ajax({

              url: './server/get.php',

              data: { a: 100, b: 200 },

              dataType: 'json',

              success: function (res) {

                console.log('请求成功了')

                console.log(res)

              }

            })

          })

      十五 jQuery 发送一个 jsonp 请求

      jQuery 也提供给我们发送 jsonp 请求的方式

      jsonp: 利用 script 标签的 src 属性来请求

      返回值: 是一个字符串, 字符串里面写了一个 函数名(后端传递给前端的参数)

      使用 $.ajax() 这个方法

      必须写的:dataType: 'jsonp'

      发送 jsonp 请求

      jQuery 帮我们准备好了一个函数名, 并且以参数的形式带到了后端

      jQuery 帮我们带过去的 callback 参数, 就是它准备好的函数名

      后端就应该返回一个 jQuery 准备好的函数名()

      其他参数

      jsonp: '', 你带到后端表示你函数名的那个 key, 默认值是 callback

      cache: false, 当 dataType === ‘jsonp’ 的时候, 默认 cache 就是 false

       // 发送一个 jsonp 请求

          $.ajax({

            url: 'http://127.0.0.1/server/jsonp.php',

            dataType: 'jsonp', // 表示我要发送一个 jsonp 请求

            jsonp: 'cb', // 表示参数里面的 cb 属性时我准备好的函数名

            cache: true, // 表示缓存本次请求

            success: function (res) {

              console.log(res)

            }

          })







          //   jQuery 准备好的函数名

          //     + jQuery34108160883644340862_1582255906750

          //     + 变量名包含 数字 字母 下划线 $

          //     + function jQuery34108160883644340862_1582255906750() {}



      十六 jQuery 的多库并存机制

      因为 jQuery 引入页面以后, 向全局添加了两个名字

      一个叫做 $

      一个叫做 jQuery

      万一有别的类库也起名叫做 jQuery 或者$ 怎么办

      当我两个库都需要使用的时候

      因为向全局暴露的名字一样, 就会发生冲突了

      谁的文件引再后面, 谁的名字就占主要位置了

      两个只能选择一个使用

      jQuery 提供了一个方法

      我可以不占用$ 或者 jQuery 这个名字

      noConflict()

      语法: $.noConflict() 或者jQuery.noConflict()

      当你执行了 noConflict() 以后, jQuery 就交出了$的控制权。

      jQuery向全局暴露的不在有$ 这个名字了。当你执行了noConflict(true) 以后, jQuery就交出了 $ 和jQuery 的控制权。

      交出去以后, 我的 jQuery 就用不了

      noConflict() 的返回值: 就是一个新的控制权

      你只要接收一个返回值, 你定好的变量是什么,jQuery 的控制权就是什么

       // 交出 $ 的控制权

          // $.noConflict()



          // 交出 $ 和 jQuery 的控制权

          // $.noConflict(true)



          // 改变 jQuery 的控制权

          var $$ = $.noConflict(true)



      十七 jQuery 的插件扩展机制

      jQuery 还提供给我们了一个机制, 就是你可以向 jQuery 里面扩展一些方法



      两个方法



      $.extend()

      扩展给 jQuery本身使用的

      语法:

      $.extend({ 你要扩展的方法名: function () {}, 你要扩展的方法名: function () {}, ... })

      使用的时候就是 $.你扩展的方法名()

      $.fn.extend() => $.extend($.fn, { 你扩展的方面名 })

      扩展给 jQuery 元素集合使用的



      语法 $.fn.extend({ 你要扩展的方法名: function () {}, 你要扩展的方法名: function () {}, ... })



      使用的时候就是 $(选择器).你扩展的方法名()



      $('div').html()



            // 1. 扩展给 jQuery 本身

          //    jQuery 本身没有操作 cookie 的方法

          // $.extend({

          //   setCookie: function (key, value, expires) {

          //     // 写上设置 cookie 的方法

          //     if (expires) {

          //       var time = new Date()

          //       time.setTime(time.getTime() - 1000 60 60 8 + 1000 expires)

          //       document.cookie = ${key}=${value};expires=${time}

          //     } else {

          //       document.cookie = ${key}=${value}

          //     }

          //   },

          //   getCookie: function (key) {

          //     // ...

          //   }

          // })



          // 使用我们扩展的方法去设置 cookie

          // $.setCookie('a', 100)

          // $.setCookie('b', 200, 10)





            // 2. 扩展给元素集合

          //    扩展一个全选的方法

          //    方法以执行, 就能让 input checkbox 变成选中状态或者不选中状态

          $.fn.extend({

            selectAll: function (type = true) {

              // type 就是你传递进来的选中或者不选中一个标志

              //   你不传递的时候, 我默认是 true, 你传递了就用你传递的

              // console.log(this) // 就是你调用的时候前面的哪个元素集合

              this.each(function (index, item) {

                // 让元素集合中的每一个 input 的 checked 属性为 true

                item.checked = type

              })



              // return 这个元素集合, 达到一个链式编程的效果

              return this

            }

          })





          $('button').click(() => {

            // 让所有 input 框变成选中状态

            console.log($('input').selectAll().attr('hello', 'world'))

          })



      十八 jQuery 的拷贝对象问题

      $.extend() 深拷贝 与 浅拷贝

      传递一个对象的时候, 可以做到插件扩展机制

      传递多个对象的时候, 可以将后面几个对象的内容复制到第一个对象里面

      语法:

      $.extend(是否深拷贝, 对象1, 对象2, 对象3, ...)

      是否深拷贝: 默认是 false, 可以不写

      从 对象2 开始, 后面所有对象的内容都会被拷贝到 对象1 里面

      再拷贝的时候, 如果有重复的 key, 那么以写在后面的为准(后来者居上)

      十九 jQuery 的插件

      基于 jQuery 使用的, 别人封装好的插件



      我们拿来使用就可以了, 前提就是要有 jQuery



      例子 一个叫做 jquery-validate 的插件



      专门用来做表单验证的

      你输入的内容是不是符合规则

      下载

      引入文件

      去复制粘贴


      <!-- 引入文件 -->
      <!-- 注意: 先引入 jQuery, 后引入 jquery-validate -->
      <script src="./jquery/jquery.min.js"></script>
      <!-- jquery-validate 这个文件依赖的 jquery -->
      <script src="./jquery-validate/jquery.validate.min.js"></script>
      <!-- 引入中文信息提示包, 必须在 jquery-validate 的后面 -->
      <script src="./jquery-validate/localization/messages_zh.min.js"></script>
      <script>
      
        // 选择到你要验证的表单的 form 标签
      //   执行 validate 方法
      //   {} 里面就写我们的验证规则
      $('#login').validate({
      // 你需要的验证规则
      rules: {
      // key 就是你要验证的哪个 input 框的 name 属性
      username: 'required', // 用户名必填
      password: { // 一个字段可以写多个验证方式
        required: true,
        minlength: 6, // 最少是六个
        maxlength: 12, // 最多十二个
      }
      },
      // 你自定义提示的文本内容
      messages: {
      // key 就是你验证的哪个 input 框的 name 属性
      username: '请输入用户名! ^_^',
      password: {
        required: '请输入密码!',
        minlength: '最少要输入 6 个字符噢!'
      }
      },
      // 表单的提交事件
      //    这个函数会在表单验证通过以后执行
      submitHandler: function (form) {
      // form 接收的就是你的 form 标签
      // console.log(form)
      // console.log('表单验证通过了, 我需要使用 ajax 去提交数据了')
      
      // 有一个 jQuery 的方法
      // serialize() 快速获取表单输入的数据
      //  $(form).serialize() 就能拿到这个 form 标签里面的表单数据
      // console.log($(form).serialize())  // username=admin&password=123456
      
      // 发送请求到后端
      $.post('./server/login.php', $(form).serialize(), res => {
        console.log(res)
      }, 'json')
      }
      })
      

      ————————————————
      版权声明:本文为CSDN博主「孔四月」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
      原文链接:https://blog.csdn.net/k464746/article/details/104685150

网页炫酷背景

前端达人

前言:

做网页项目时想要背景是动态的,推荐两个我觉得比较可以的js动态背景。



随鼠标的移动而移动的线条,具体效果看图:

点击查看原图




你焦点在哪,那么那里的线条就会汇聚到你的焦点处。

用法:将js声明到body内即可,我是放置在body底部的

<script type="text/javascript" src="https://cdn.bootcss.com/canvas-nest.js/1.0.1/canvas-nest.min.js"&gt;&lt;/script&gt;

1

可以鼠标点击产生字的,如图:

点击查看原图

用法和第一个类似,不过在这个js文件前得先引入jquery:


<script src="https://cdn.jsdelivr.net/npm/jquery@3.2/dist/jquery.min.js"></script>
<script type="text/javascript">
            /* 鼠标 */
            var a_idx = 0;
            jQuery(document)
                    .ready(
                            function($) {
                                $("body")
                                        .click(
                                                function(e) {
                                                    var a = new Array("@健身",
                                                            "@学习", "@机车",
                                                            "@摄影", "@自由",
                                                            "@考研", "@自律",
                                                            "@独立", "@厨艺",
                                                            "@橘子", "@交友",
                                                            "@爱媳妇", "@爱家人");
                                                    var $i = $("<span></span>")
                                                            .text(a[a_idx]);
                                                    a_idx = (a_idx + 1)
                                                            % a.length;
                                                    var x = e.pageX, y = e.pageY;
                                                    $i
                                                            .css({
                                                                "z-index" : 999999999999999999999999999999999999999999999999999999999999999999999,
                                                                "top" : y - 20,
                                                                "left" : x,
                                                                "position" : "absolute",
                                                                "font-weight" : "bold",
                                                                "color" : "rgb("
                                                                        + ~~(255 * Math
                                                                                .random())
                                                                        + ","
                                                                        + ~~(255 * Math
                                                                                .random())
                                                                        + ","
                                                                        + ~~(255 * Math
                                                                                .random())
                                                                        + ")"
                                                            });
                                                    $("body").append($i);
                                                    $i.animate({
                                                        "top" : y - 180,
                                                        "opacity" : 0
                                                    }, 1500, function() {
                                                        $i.remove();
                                                    });
                                                });
                            });
        </script>


这里使用的是cdn形式的jquery即不用将jq放入本地文件再引入,直接访问网络上的jq即可,还有就是点击产生的字可以自行修改。

————————————————
版权声明:本文为CSDN博主「helllolsy」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/CodingNO1/article/details/104572143

前端 之 jQuery

seo达人

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

文章目录
jQuery
jQuery的安装:
jQuery 语法
选择器
基本选择器:
层级选择器
基本筛选器
样式操作
表单筛选器
遍历方法
jQuery链式操作
jQuery 事件
$(document).ready()
click()
dblclick()
mouseenter()
mouseleave()
mousedown()
mouseup()
hover()
focus()
blur()
input()
取消标签默认的事件
事件冒泡
事件委托
jQuery自带的动画效果
jQuery
jQuery的字面意思其实就是JavaScript和查询(Query),即用于辅助开发JavaScript的库。jQuery 极大地简化了 JavaScript 编程,jQuery使用户可以更加方便地处理HTML(标准通用标记语言下的一个应用)、events、实现动画效果,而且方便地为网站提供AJAX交互。

实例找到div标签并给div标签设置为红色

原生js操作
var d1Ele = document.getElementById('d1');
d1Ele.style.color = 'red';
jQuery操作
$('#d1').css('color','blue');
1
2
3
4
5
jQuery的安装:
您可以从网页中添加 jQuery

1、从官网http://jquery.com/download/下载 jQuery 库

里面分为:Production version(用于实际的网站中,已被精简和压缩)和Development version(用于测试和开发,未压缩,是可读的代码),一般使用Production version压缩版本的。

2、从 CDN 中载入 jQuery, 如从 Google 或 百度 中加载 jQuery

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
或者
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
或者
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.slim.js"></script>
1
2
3
4
5
一定要先导入后使用

jQuery 语法
jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。

$(selector).action()
1
美元符号定义 jQuery
选择符(selector)“查询"和"查找” HTML 元素
jQuery 的 action() 执行对元素的操作
选择器
jQuery 选择器可以对 HTML 元素组或单个元素进行操作。 jQuery 选择器基于元素的 id、类、类型、属性、属性值等查找HTML 元素。它基于已经存在的 CSS 选择器外,还有一些自定义的选择器。

基本选择器:
ID选择器、类名选择器、标签选择器、组合选择器

选择器 实例 选取
* $("*") 所有元素
#id $("#d1") id=“d1” 的元素
.class $(".name") class=“name” 的所有元素
.class , .class $(".name,.password") class 为 “name” 或 “password” 的所有元素
*element $(“span”) 所有 <span> 元素
el1,el2,el3 $(“h1,div,p”) 所有 <h1>、<div> 和 <p> 元素
提出注意点,原生DOM查找和jQuery查找出来的结果区别DOM对象与jQuery对象
DOM对象与jQuery对象互相转换
$('#d1')[0]
var d1Ele = document.getElementById('d1');
$(d1Ele)
1
2
3
4
层级选择器
选择器 实例 选取
parent > child $(“div > p”) <div> 元素的直接子元素的所有 <p> 元素
parent descendant $(“div p”) <div> 元素的后代的所有 <p> 元素
element + next $(“div + p”) 每个 <div> 元素相邻的下一个 <p> 元素
element ~ siblings $(“div ~ p”) <div> 元素同级的所有 <p> 元素
基本筛选器
选择器 实例 选取
:first $(“p:first”) 第一个 <p> 元素
:last $(“p:last”) 最后一个 <p> 元素
:even $(“tr:even”) 所有偶数 <tr> 元素
:odd $(“tr:odd”) 所有奇数 <tr> 元素
:gt(nu) $(“ul li:gt(3)”) 列举 index 大于 3 的元素
:lt(nu) $(“ul li:lt(3)”) 列举 index 小于 3 的元素
:eq(nu) $(“ul li:eq(3)”) 列举 index 等于 3 的元素
:not(selector) $(“input:not(:empty)”) 所有不为空的输入元素
:has(element) $(“div:has(a)”) 返回拥有一个或多个元素在其内的所有元素
/用ul标签举例
$('#ul>li:first')
$('#u1>li:last')
$('#ul>li:eq(3)')
$('#ul>li:even')
$('#ul>li:odd')
$('#ul>li:gt(3)')
$('#ul>li:lt(3)')
$('#u1>li:not(.c1)')

最后一个has的玩法需要写个三个div:一个空div、一个儿子有a标签、一个儿子没有a,孙子有a标签
$('div:has(a)')
输出:
k.fn.init(3) [div, div#d2, div#d3, prevObject: k.fn.init(1)]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
样式操作
方法 描述
addClass() 向被选元素添加一个或多个类名
after() 在被选元素后插入内容
append() 在被选元素的结尾插入内容
appendTo() 在被选元素的结尾插入 HTML 元素
attr() 设置或返回被选元素的属性/值
before() 在被选元素前插入内容
clone() 生成被选元素的副本
css() 为被选元素设置或返回一个或多个样式属性
detach() 移除被选元素(保留数据和事件)
empty() 从被选元素移除所有子节点和内容
hasClass() 检查被选元素是否包含指定的 class 名称
height() 设置或返回被选元素的高度
html() 设置或返回被选元素的内容
innerHeight() 返回元素的高度(包含 padding,不包含 border)
innerWidth() 返回元素的宽度(包含 padding,不包含 border)
insertAfter() 在被选元素后插入 HTML 元素
insertBefore() 在被选元素前插入 HTML 元素
offset() 设置或返回被选元素的偏移坐标(相对于文档)
offsetParent() 返回第一个定位的祖先元素
outerHeight() 返回元素的高度(包含 padding 和 border)
outerWidth() 返回元素的宽度(包含 padding 和 border)
position() 返回元素的位置(相对于父元素)
prepend() 在被选元素的开头插入内容
prependTo() 在被选元素的开头插入 HTML 元素
prop() 设置或返回被选元素的属性/值
remove() 移除被选元素(包含数据和事件)
removeAttr() 从被选元素移除一个或多个属性
removeClass() 从被选元素移除一个或多个类
removeProp() 移除通过 prop() 方法设置的属性
replaceAll() 把被选元素替换为新的 HTML 元素
replaceWith() 把被选元素替换为新的内容
scrollLeft() 设置或返回被选元素的水平滚动条位置
scrollTop() 设置或返回被选元素的垂直滚动条位置
text() 设置或返回被选元素的文本内容
toggleClass() 在被选元素中添加/移除一个或多个类之间切换
unwrap() 移除被选元素的父元素
val() 设置或返回被选元素的属性值(针对表单元素)
width() 设置或返回被选元素的宽度
常用实例:

三级菜单展示

$(this).next().removeClass('hide').parent().siblings().find('.items').addClass('hide')
1
直接操作css属性

// 两个参数设置属性
$('#p1').css('font-size','24px')
// 一个参数获取属性
$('#p1').css('font-size')

// 一次设置多个属性
$('#p1').css({"border":"1px solid black","color":"blue"})
1
2
3
4
5
6
7
位置操作

// 不加参数获取位置参数
$(".c3").offset()
// 加参数设置位置参数
$(".c3").offset({top:284,left:400})

// position只能获取值,不能设置值

// scrollTop获取当前滚动条偏移量
$('window').scrollTop();
$('window').scrollTop(0);  // 设置滚动条偏移量
1
2
3
4
5
6
7
8
9
10
文本操作

text() html() 不加参数获取值,加参数设置值
val() 不加参数获取值,加参数设置值
1
2
属性操作

// 获取文本属性
$('#d1').attr('s1')  // 获取属性值
$('#d1').attr('s1','haha')  // 设置属性值
$('#d1').attr({'num':50,'taidi':'gay'})  // 设置多个属性
$('#d1').removeAttr('taidi')  // 删除一个属性

// 获取check与radio标签的checked属性
$('#i1').prop('checked')
$('#i1').prop('checked',true)
1
2
3
4
5
6
7
8
9
文档处理

// 标签内部尾部追加元素
$('#d1').append(pEle)
$pEle.appendTo($('#d1'))

// 标签内部头部添加元素
$('#d1').prepend(pEle)
$pEle.prependTo($('#d1'))

// 标签外部下面添加元素
$(A).after(B)// 把B放到A的后面
$(A).insertAfter(B)// 把A放到B的后面

// 标签外部上面添加元素
$(A).before(B)// 把B放到A的前面
$(A).insertBefore(B)// 把A放到B的前面

// 替换标签
replaceWith()  // 什么被什么替换
replaceAll()  // 拿什么替换什么

// 克隆事例
<button id="b2">屠龙宝刀,点击就送</button>
// clone方法加参数true,克隆标签并且克隆标签带的事件
  $("#b2").on("click", function () {
    $(this).clone(true).insertAfter(this);  // true参数
  });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
表单筛选器
选择器 实例 选取
:input $(":input") 所有 input 元素
:text $(":text") 所有带有 type=“text” 的 input 元素
:password $(":password") 所有带有 type=“password” 的 input 元素
:checkbox $(":checkbox") 所有带有 type=“checkbox” 的 input 元素
:submit $(":submit") 所有带有 type=“submit” 的 input 元素
:reset $(":reset") 所有带有 type=“reset” 的 input 元素
:button $(":button") 所有带有 type=“button” 的 input 元素
:image $(":image") 所有带有 type=“image” 的 input 元素
:file $(":file") 所有带有 type=“file” 的 input 元素
:enabled $(":enabled") 所有启用的 input 元素
:disabled $(":disabled") 所有禁用的 input 元素
:selected $(":selected") 所有选定的 input 元素
:checked $(":checked") 所有选中的 input 元素
// 针对表单内的标签
$('input[type="text"]')
// 简化写法
$(':text')

// 找到所有被选中的checkbox
$(':checkbox')  // 注意select框中默认selected标签也会被找到
$('input:checkbox')
1
2
3
4
5
6
7
8
遍历方法
方法 描述
add() 把元素添加到匹配元素的集合中
children() 返回被选元素的所有直接子元素
closest() 返回被选元素的第一个祖先元素
contents() 返回被选元素的所有直接子元素(包含文本和注释节点)
each() 为每个匹配元素执行函数
filter() 把匹配元素集合缩减为匹配选择器或匹配函数返回值的新元素
find() 返回被选元素的后代元素
first() 返回被选元素的第一个元素
is() 根据选择器/元素/jQuery 对象检查匹配元素集合,如果存在至少一个匹配元素,则返回 true
last() 返回被选元素的最后一个元素
next() 返回被选元素的后一个同级元素
nextAll() 返回被选元素之后的所有同级元素
nextUntil() 返回介于两个给定参数之间的每个元素之后的所有同级元素
not() 从匹配元素集合中移除元素
offsetParent() 返回第一个定位的父元素
parent() 返回被选元素的直接父元素
parents() 返回被选元素的所有祖先元素
parentsUntil() 返回介于两个给定参数之间的所有祖先元素
prev() 返回被选元素的前一个同级元素
prevAll() 返回被选元素之前的所有同级元素
prevUntil() 返回介于两个给定参数之间的每个元素之前的所有同级元素
siblings() 返回被选元素的所有同级元素 Returns all sibling elements of the selected element
slice() 把匹配元素集合缩减为指定范围的子集
each() 方法为每个匹配元素规定要运行的函数。
$.each(array,function(index){
  console.log(array[index])
})
$.each(array,function(){
  console.log(this);
})
// 支持简写
$divEles.each(function(){
  console.log(this)  // 标签对象
})
1
2
3
4
5
6
7
8
9
10
11
jQuery链式操作
python代码诠释链式调用,其实就是在调用方法之后讲对象再次返回

<div>
<p>p1</p>
<p>p2</p>
</div>
$('div>p').first().addclass('c1').next().addclass('c2');
1
2
3
4
5
jQuery 事件
事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。

$(document).ready()
$(document).ready() 方法允许我们在文档完全加载完后执行函数。为了防止网页还没加载完,js代码就已经执行,通常利用下面两种方式来书写js代码。

$(document).ready(function(){
// 在这里写你的JS代码...
})

网页最后
$(function(){
// 在这里写你的代码
})
1
2
3
4
5
6
7
8
click()
click() 方法是当按钮点击事件被触发时会调用一个函数。

在下面的实例中,当点击事件在某个<p> 元素上触发时,隐藏当前的 <p> 元素:

$("p").click(function(){ 
  $(this).hide(); 
});
1
2
3
dblclick()
当双击元素时,会发生 dblclick 事件。

$("p").dblclick(function(){ 
  $(this).hide(); 
});
1
2
3
mouseenter()
当鼠标指针穿过元素时,会发生 mouseenter 事件。

$("#p1").mouseenter(function(){ 
  alert("鼠标经过了!"); 
});
1
2
3
mouseleave()
当鼠标指针离开元素时,会发生 mouseleave 事件。

$("#p1").mouseleave(function(){ 
  alert("鼠标离开了!"); 
});
1
2
3
mousedown()
当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件。

$("#p1").mousedown(function(){ 
  alert("鼠标按下!"); 
});
1
2
3
mouseup()
当在元素上松开鼠标按钮时,会发生 mouseup 事件。

ouseup(function(){ 
  alert("鼠标松开!"); 
});
1
2
3
hover()
hover()方法用于模拟光标悬停事件。当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter);当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave)。

$("#p1").hover(function(){ 
  alert("你的光标悬停!"); 
  }, 
  function(){ 
  alert("你的光标已经离开!"); 
});
1
2
3
4
5
6
focus()
当元素获得焦点时,发生 focus 事件。

$("input").focus(function(){ 
  $(this).css("background-color","#eee"); 
});
1
2
3
blur()
当元素失去焦点时,发生 blur 事件。

$("input").blur(function(){ 
  $(this).css("background-color","#eee"); 
});
1
2
3
input()
input实时监听,输入内容时发生 input 事件

 $('#i1').on('input',function () {
        console.log($(this).val())
    });
1
2
3
取消标签默认的事件
利用preventDefault()
$('input').click(function (e) {
        alert(123);
        e.preventDefault();  
    });
直接返回false
$('input').click(function (e) {
        alert(123);
        return false;
    });
  
1
2
3
4
5
6
7
8
9
10
11
事件冒泡
iv>p>span  // 三者均绑定点击事件
$("span").click(function (e) {
        alert("span");
        e.stopPropagation();  // 阻止事件冒泡
    });
1
2
3
4
5
事件委托
<button>按钮</button>
<script src="jQuery-3.3.1.js"></script>
<script>
    $('body').on('click','button',function () {
        alert(123)
    })
</script>
1
2
3
4
5
6
7
jQuery自带的动画效果
下面的表格列出了用于创建动画效果的 jQuery 方法。

方法 描述
delay() 对被选元素的所有排队函数(仍未运行)设置延迟
dequeue() 移除下一个排队函数,然后执行函数
fadeIn() 逐渐改变被选元素的不透明度,从隐藏到可见
fadeOut() 逐渐改变被选元素的不透明度,从可见到隐藏
fadeTo() 把被选元素逐渐改变至给定的不透明度
fadeToggle() 在 fadeIn() 和 fadeOut() 方法之间进行切换
finish() 对被选元素停止、移除并完成所有排队动画
hide() 隐藏被选元素
queue() 显示被选元素的排队函数
show() 显示被选元素
slideDown() 通过调整高度来滑动显示被选元素
slideToggle() slideUp() 和 slideDown() 方法之间的切换
slideUp() 通过调整高度来滑动隐藏被选元素
stop() 停止被选元素上当前正在运行的动画
toggle() hide() 和 show() 方法之间的切换
蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、网站建设 平面设计服务

jquery 关于table的全选与反选

seo达人

如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

控制表格的多选和反选,直接上代码,顺便安利一个小知识点:tr的底边框不显示的问题,解决办法是:table{border-collapse:collapse;}    


  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. <style>
  6. *{margin:0;padding:0;}
  7. table{border-collapse:collapse}
  8. .detail_tb {width: 100%;border: 1px solid #ccc;}
  9. .detail_tb .fied_header {height: 38px;line-height: 38px;border-left: none;border-bottom: 1px solid #ccc;background-color: #ececec;}
  10. .detail_tb .fied_header th {text-align: center;border-right: 1px solid #ccc;color: #333;font-size: 14px;}
  11. .detail_tb .fied_header th input {vertical-align: middle;}
  12. .detail_tb tr {height: 38px;line-height: 38px;border-left: none;border-bottom: 1px solid #ccc;background-color: #fff;}
  13. .detail_tb tr td {text-align: center;border-right: 1px solid #ccc;color: #666;font-size: 14px;}
  14. .detail_tb tr td input {float: left;margin: 12px 5px 0 10px;}
  15. .detail_tb tr td span {float: left;}
  16. .detail_tb tr td select {display: inline-block;width: 90px;height: 24px;}
  17. </style>
  18. </head>
  19. <body>
  20. <table class="detail_tb" >
  21. <thead>
  22. <tr class="fied_header">
  23. <th width="65"><input type="checkbox" value="number" id="number"> 序号</th>
  24. <th width="110">孩子姓名</th>
  25. <th width="130">家长电话</th>
  26. <th width="110">介绍人孩子姓名</th>
  27. <th width="130">介绍人电话</th>
  28. <th width="150">报名时间</th>
  29. <th width="100">分组情况</th>
  30. <th width="100">拉新数量</th>
  31. <th width="100">是否签到</th>
  32. <th width="100">是否发奖</th>
  33. </tr>
  34. </thead>
  35. <tbody id="tbody">
  36. <tr>
  37. <td width="65"><input type="checkbox" value="" id="" ><span>1</span></td>
  38. <td width="110">张三</td>
  39. <td width="130">13888888888</td>
  40. <td width="110">李四</td>
  41. <td width="130">13888888888</td>
  42. <td width="150">2016/08/6 21:00</td>
  43. <td width="100">
  44. <select name="" id="">
  45. <option value="">未分组</option>
  46. <option value="">1</option>
  47. <option value="">2</option>
  48. </select>
  49. </td>
  50. <td width="100">33</td>
  51. <td width="100"></td>
  52. <td width="100">
  53. <select name="" id="">
  54. <option value=""></option>
  55. <option value="">奖品1</option>
  56. <option value="">奖品2</option>
  57. </select>
  58. </td>
  59. </tr>
  60. <tr>
  61. <td width="65"><input type="checkbox" value="" id=""><span>2</span></td>
  62. <td width="110">张四</td>
  63. <td width="130">13888888888</td>
  64. <td width="110">李四</td>
  65. <td width="130">13888888888</td>
  66. <td width="150">2016/08/6 21:00</td>
  67. <td width="100">
  68. <select name="" id="">
  69. <option value="">未分组</option>
  70. <option value="">1</option>
  71. <option value="">2</option>
  72. </select>
  73. </td>
  74. <td width="100">33</td>
  75. <td width="100"></td>
  76. <td width="100">
  77. <select name="" id="">
  78. <option value=""></option>
  79. <option value="">奖品1</option>
  80. <option value="">奖品2</option>
  81. </select>
  82. </td>
  83. </tr>
  84. <tbody>
  85. </table>
  86. <script src="https://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
  87. <script type="text/javascript">
  88. // 全选和反选
  89. $("#number").click(function () {
  90. var isChecked = $("#number").prop("checked");
  91. $("#tbody input").prop("checked", isChecked);
  92. })
  93. // 单独选项控制全选
  94. $("#tbody input").click(function () {
  95. var allLength = $("#tbody input").length;
  96. var checkedLength = $("#tbody input:checked").length;
  97. if(allLength == checkedLength){
  98. $("#number").prop("checked",true);
  99. }else {
  100. $("#number").prop("checked",false);
  101. }
  102. });
  103. </script>
  104. </body>
  105. </html>



蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务


jquery原理的简单分析

之晨

       jquery是一个轻量级的JS框架,这点相信大部分人都听过,而jquery之所以有这样一个称呼,就是因为它悄悄披了一件外衣,将自己给隐藏了起来。

      /以下截取自jquery源码片段
      (function( window, undefined ) {
      /*    源码内容    */
       })( window );

      上面这一小段代码来自于1.9.0当中jquery的源码,它是一个无污染的JS插件的标准写法,专业名词叫闭包。可以把它简单的看做是一个函数,与普通函数不同的是,这个函数没有名字,而且会立即执行,就像下面这样,会直接弹出字符串。

      (function( window, undefined ) {
         alert("Hello World!");
       })( window );

       可以看出来这样写的直接效果,就相当于我们直接弹出一个字符串。但是不同的是,我们将里面的变量变成了局域变量,这不仅可以提高运行速度,更重要的是我们在引用jquery的JS文件时,不会因为jquery当中的变量太多,而与其它的JS框架的变量命名产生冲突。对于这一点,我们拿以下这一小段代码来说明。

     var temp = "Hello World!";
        (function( window, undefined ) {
         var temp = "ByeBye World!";
        })( window );
        alert(temp);

       这段代码的运行结果是Hello而不是ByeBye,也就是说闭包中的变量声明没有污染到外面的全局变量,倘若我们去掉闭包,则最终的结果会是ByeBye,就像下面这样。

      var temp = "Hello World!";
        //    (function( window, undefined ) {
         var temp = "ByeBye World!";
      //    })( window );
       alert(temp);

       由此就可以看出来,jquery的外衣就是这一层闭包,它是很重要的一个内容,是编写JS框架必须知道的知识,它可以帮助我们隐藏我们的临时变量,降低污染。

       刚才我们说了,jquery将自己声明的变量全部都用外衣遮盖起来了,而我们平时使用的Jquery和$,却是真真实实的全局变量,这个是从何而来,谜底就在jquery的某一行代码,一般是在文件的末尾。

window.jQuery = window.$ = jQuery;
       这一句话将我们在闭包当中定义的jQuery对象导出为全局变量jQuery和$,因此我们才可以在外部直接使用jQuery和$。window是默认的JS上下文环境,因此将对象绑定到window上面,就相当于变成了传统意义上的全局变量,就像下面这一小段代码的效果一样。

      var temp = "Hello World!";
      (function( window, undefined ) {
         var temp = "ByeBye World!";
         window.temp = temp;
       })( window );
       alert(temp);

       很明显,它的结果应该是ByeBye,而不是Hello。因为我们在闭包中导出了temp局部变量为全局变量,从而覆盖了第一行声明的全局变量temp。

        jquery最核心的功能,就是选择器。而选择器简单理解的话,其实就是在DOM文档中,寻找一个DOM对象的工具。

        首先我们进入jquery源码中,可以很容易的找到jquery对象的声明,看过以后会发现,原来我们的jquery对象就是init对象。

         jQuery = function( selector, context ) {
          return new jQuery.fn.init( selector, context, rootjQuery );
         }

         jQuery.fn = jQuery.prototype;

         jQuery.fn.init.prototype = jQuery.fn;
        这两句话,第一句把jQuery对象的原型赋给了fn属性,第二句把jQuery对象的原型又赋给了init对象的原型。也就是说,init对象和jQuery具有相同的原型,因此我们在上面返回的init对象,就与jQuery对象有一样的属性和方法。
很多时候,我们在jQuery和DOM对象之间切换时需要用到[0]这个属性。从截图也可以看出,jQuery对象其实主要就是把原生的DOM对象存在了[0]的位置,并给它加了一系列简便的方法。这个索引0的属性我们可以从一小段代码简单的看一下它的由来,下面是init方法中的一小段对DOMElement对象作为选择器的源码。

      // Handle $(DOMElement)
       if ( selector.nodeType ) {
            /*     可以看到,这里将DOM对象赋给了jQuery对象的[0]这个位置  */
            this.context = this[0] = selector;
            this.length = 1;
           return this;
        }

       这一小段代码可以在jquery源码中找到,它是处理传入的选择参数是一个DOM对象的情况。可以看到,里面很明显的将jQuery对象索引0的位置以及context属性,都赋予了DOM对象。代码不仅说明了这一点,也同时说明了,我们使用$(DOMElement)可以将一个DOM对象转换为jQuery对象,从而通过转换获得jQuery对象的简便方法。

浅析jQuery UI的特性和优点

鹤鹤

众所周知,jquery是以jquery为基础的开源,JavaScript网页用户界面代码库。它包含了底层用户交互、动画、和可更换主题的可视控件。我们可以直接用它来构建具有很好交互性的web应用程序。这些只是大概对jquery UI的一个认识,那么,除了这些,jquery UI还有哪些特性和优点呢?今天我们就来分享下jquery UI的一些特性和优点。

(1)jquery UI简单易用。仅仅这一点可能就很招设计师和客户的喜爱了,因为简单,可操作性也就越强,这在一定程度上也大大改善了用户体验。

日历

链接

个人资料

蓝蓝设计的小编 http://www.lanlanwork.com

存档