jQuery:对Dom和js的封装模块

jQuery 低版本(1.x)兼容IE,jquery下载:http://jquery.com/download/

若不考虑兼容ie,可下载最新版

我用的jQuery版本:https://code.jquery.com/jquery-3.3.1.js

可以把min.js文件转换为.js文件滴东东:http://tool.chinaz.com/Tools/JsFormat.aspx

jQuery提供所有的方法:http://jquery.cuishifeng.cn/index.html

1.基本选择器

获取标签,修改内容($==jQuery)

<html><head><meta charset='utf-8'><title></title></head><body><div id='n1'>11</div><div class='c1'>22</div><div class='c1'>22</div><a></a><span id = 'n2'></span><div id = 'n3'><div><div class='c3'><span><a>asd</a>   //<a class="c4"></a></span></div></div><span>adfs</span></div><script src='jquery-3.3.1.js'></script><script>//获取标签// $相当于jQuery
            $("#n1").text('123');$('div').text('xxx');$('.c1').text('oo');$('.c1,a,#n2').text('ok');$('#n3 div .c3 span a').text('kkk');   //$('.c4').text('000');</script></body>
</html>    

小例砸

2.选择器

$('label+input') 选中lable旁边有input的标签
$('form~input') 兄弟标签input标签
$('li:first') 找到li标签的第一个标签
$('input:not(:checked)' 找到input下没有checked属性的标签(没有被选中的标签)
$('tr:even') 找到tr标签中索引从零开始为偶数的tr 
$('tr:eq(1)') 找到tr标签中索引值为1的标签
$('div:contains('John')') 找到div标签 文本里有John的标签
$('div[sb='XXOO']') 所有div标签中找到div属性中有自定义属性sb='XXOO'的标签
$('ul li:first-child') 找到ul标签下li标签的第一个子孩子
$(':input') 找到所有的input标签
$('input[type='password']')==$(' :password') 所有input标签中找到属性中有[type='password']的标签
$('input:checked') 表示属性有checked=checked标签(被选中的标签)

3.筛选器

$('tr').eq(num) 匹配到索引为num的标签
$('div').hasClass('perfect') 检查当前类是否有perfect类
$('.c1').children() 找到c1类下所有的‘孩子’,不是孙子
$('.c1').find('a') 在兄弟姐妹的子子孙孙里找到a标签
$('.c1').next() 找到c1类的下一个兄弟标签
$('.c1').nextAll() c1类的下的所有的兄弟标签
$('.c1').prev()  c1类的上一个兄弟标签
$('.c1').prevAll() c1类的上的所有的兄弟标签
$('.c1')siblings() c1同级的所有的兄弟标签
$('#n10').parent().siblings() 找到n10的父标签的所有兄弟标签

4.小小方法

$('#nid').toggleClass('hide')           如果有class=hide则移除掉hide ,没有则添加class= hide     
$('#nid').html() 可以获取所有包括html标签的所有东西
$('#nid').html(‘dfkfdl’)  修改值
text() 获取标签的文本
val() 针对获取input系列 select textarea文本


5.属性

有关checkbox的属性操作:

$('#c1').attr('XXOO','sb'); 表示给id为c1的添加属性XXOO='sb'(关键字: attr)

$('#c2').attr('checked','checked');表示给checkbox设置属性选中

$('#c2').removeAttr('checked');删除选中

然而给checkbox  /  radio 属性的设置后,一旦删除就不能再设置(其他属性可以)

故,针对checkbox和radio 有专用的快捷设置:“prop”

$('#c2').prop('checked',true);  表示选中
$('#c2').prop('checked',false);   表示取消选中

6.有关于each的for循环

var userList=[11,22,33,44];
$.each(userList function(i,item){   // each 即可获取下标,也可获取元素console.log(i,item);    // i是下标  item是元素
});

小例子:对表格的操作(选中,取消,反转)

<html>
<head><meta charset='utf8'/><title></title></head>
<body><div><div><input type='button' value='全选' onclick='SelectAll();'/><input type='button' value='取消' onclick='ClearAll();'/><input type='button' value='反选' onclick='ReverseAll();'/></div><table border='1'><tr><td><input type='checkbox'/></td><td>123</td><td>1233</td></tr><tr><td><input type='checkbox'/></td><td>123</td><td>1233</td></tr><tr><td><input type='checkbox'/></td><td>123</td><td>1233</td>    </tr></table></div><script src='jquery-3.3.1.js'></script><script>function SelectAll(){//table标签中所有的input
            $("table input[type='checkbox']").prop('checked',true); // 找到所有的input的checkbox//$('table :checkbox').prop('checked',true);
        }function ClearAll(){//table标签中所有的input//$('table input[type='checkbox']') // 找到所有的input的checkbox
            $('table :checkbox').prop('checked',false);    // 这种写法注意table后要有空格
        }function ReverseAll(){/*var checkList=$('table :checkbox'); for(var i in checkList){        // 利用for循环把每一个元素都拿到var ele = checkList[i];var isChecked = $(ele).prop('checked'); if(isChecked){$(ele).prop('checked',false);}else{ $(ele).prop('checked',true);}}*/$('table :checkbox').each(function(){ // each相当于for循环var isChecked=$(this).prop('checked');//$(this)表示当前元素if(isChecked){$(this).prop('checked',false);}else{$(this).prop('checked',true);}});    }</script>
</body>
</html>

jQuery骚操作1号

小小例子:网页侧目录(会动的哟)

<html>
<head><meta charset = 'utf8'><title></title><style>.menu{float:left;height:500px;width:20%;background-color:antiquewhite;}.content{float:left;height:500px;width:80%;background-color:#777;}.title{background-color:black;color:white;hight:40px;line-height:40px;border:2px solid white;}.hide{display:none;}</style>
</head>
<body><div><div class = 'menu'><div class='item'><div class='title' onclick='Func(this);'>菜单一</div><div class='body'><div>1.0</div><div>1.1</div><div>1.2</div></div>            </div><div class='item'><div class='title' onclick='Func(this);'>菜单二</div><div class='body hide'><div>2.0</div><div>2.1</div><div>2.2</div></div></div><div class='item'><div class='title' onclick='Func(this);'>菜单三</div><div class='body hide'><div>3.0</div><div>3.1</div><div>3.2</div></div>                </div></div><div class = 'content'>        </div></div><script src='jquery-3.3.1.js'></script><script>function Func(ths){// 获取菜单 、获取菜单二// this 表示当前的菜单  // $(ths) 获取菜单一二三// $(ths).text();  // 获取到<div class='title' οnclick='Func(this);'>菜单三</div>内容
            $(ths).next().removeClass('hide');   // 移除hide样式
            $(ths).parent().siblings().find('.body').addClass('hide');  //给出自身的兄弟标签的body项加上hide样式
            }</script>
</body>
</html>

jQuery骚操作2号

$(window).scroTop() : 窗体滚动多少,也可在scrollTop里添加值进行设置窗体滚动到的位置

小小小例子: 返回顶部

<html>
<head><meta charset='utf-8'><title></title><style>.go-top{position:fixed;right:50px;bottom:50px;border:2px solid yellow;background-color:yellow;}.hide{display:none;}</style>
</head><body><div style='height:2000px;background-color:#dddddd;'>   <div style='height:500px;background-color:antiquewhite;overflow:auto;'>    <!--overflow:auto;设置滚动条--><p>我是一个占位符</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>占位结束</p></div><div class='go-top'><a onclick='Gotop();'>返回顶部</a></div></div><script src='jquery-3.3.1.js'></script><script>window.onscroll=function(){  // 表示每当滚动条滚动都会执行一次这个函数//每滚动一次就获取scrollTop的值var currentTop = $(window).scrollTop();if(currentTop>200){      // 如果滚动的值大于200 取消隐藏
                    $('.go-top').removeClass('hide');    // 通过样式获取到标签
                }else{$('.go-top').addClass('hide');}};function Gotop(){$(window).scrollTop(0);}</script></body>
</html>

jQuery骚操作-返回顶部初级版

<html>
<head><meta charset='utf8'><title>返回顶部</title><style>.hide{display:none;}.icon{background-color:#86eaf2;width:32px;height:32px;display:inline-block;overflow:hidden;}.back{position:fixed;right:20px;bottom:20px;width:50px;}.gotop{position:relative;width:48px;height:38px;border:1px solid #ddddd;color:#fff;text-align:center;}.gotop .icon{margin-top:0px;}.gotop:hover:after{            <!--hover鼠标移上去应用这个样式-->top:0;left:0;width:100%;height:100%;content:" ";position:absolute;background-color:#d9f1f2;}.content{visibility:hidden;   <!--隐藏content样式--->width:30px;height:32px;padding:3px 10px;cursor:pointer;font-size:12px;z-index:1;text-align:center;line-height:16px;top:0;position:absolute;}.gotop:hover .content{visibility:visible;  <!--把content样式设置为可见-->}</style>
</head>
<body><div style='height:2000px;'>页面内容</div><div class='back hide'><div class='gotop' onclick='GoTop();'><a class='icon'></a><div class='content'><span style='color:black;'>返回顶部</span></div></div></div><script src='jquery-3.3.1.js'></script><script>function GoTop(){$(window).scrollTop(0);  //返回顶部
        }$(function(){$(window).scroll(function(){  // 当滚动滑轮时,执行函数体var top = $(window).scrollTop();   // 获取当前滑轮高度if(top>0){$('.back').removeClass('hide');   // 展示返回顶部
                }else{$('.back').addClass('hide');  // 隐藏返回顶部
                }});});</script>
</body>
</html>

jQuery骚操作-返回顶部 终极 版

终极版的关键语句:

.gotop:hover:after{ // hover鼠标移上去时应用这个样式
}
.gotop:hover .content{ // 把content设置为可见
  visibility:visible;
}

7.关于标签位置

$(this).offset(): 当前标签离整个屏幕左上角的位置(离顶部和左部)

$(this).postion(): 当前标签离父标签(有多远)的位置

xx.height() 相对于父框不包括边框的高度
xx.weight() 相对于父框 不包括边框的宽度

xx.innerheight :包括边框的高度
xx.innerweight :包括边框的宽度

小小小小例子: 左边框内容随右边框内容变化而变化

<!--uc浏览器显示不了第三章的效果,谷歌可以-->
<html><head><meta charset='utf8'/><title></title><style>.pg-body .catalog{position:absolute;top:0px;width:200px;bottom:0px;background-color:#c6cad3;}.pg-body .catalog.fixed{position: fixed;top:10px;}.pg-body .content{position:absolute;top:0px;width:700px;margin-left:210px;background-color:#dadee7;overflow:auto;}.pg-body .content .section{height:500px;}</style></head><body><div class='pg-body'><div class='catalog'><div class='cotalog-item' auto-to='function1'><a>第一章</a></div><div class='cotalog-item' auto-to='function2'><a>第二章</a></div><div class='cotalog-item' auto-to='function3'><a>第三章</a></div></div><div class='content'><div menu='function1' class='section'><h1>第一章</h></div><div menu='function2' class='section'><h1>第二章</h></div><div menu='function3' class='section'><h1>第三章</h></div></div></div><script src='jquery-3.3.1.js'></script><script>window.onscroll=function(){   //窗体每滚动一次就执行一次这个函数var ws=$(window).scrollTop();   //获取离顶部的高度if(ws > 50){   // 左边框固定在左侧
                    $('.catalog').addClass('fixed');}else{$('.catalog').removeClass('fixed');}$('.content').children().each(function(){    // 循环content里每一章节的标签var offs=$(this).offset();   // 获取标签离顶部的高度和宽度var offTop=offs.top;  // 获取离顶部的高度// 如果滑动的距离大于当前标签的距离var total = offTop+$(this).height();if(ws>offTop && total > ws){// 如果滑轮到底部,则最后一个菜单增大//window的高度 + 滑轮滚动的高度 = 文档的高度//$(window).height()    窗口(window的高度)高度//$(window).scrollTop()   滑轮滚动的高度//$(document).height()   整个页面的高度(长度)//var win-height = ;if(ws + $(window).height() == $(document).height()){$('.catalog').find('div:last-child').css('fontSize','48px').siblings().css('fontSize','12px');//$('.catalog').children(' :last').css('fontSize','48px').siblings().css('fontSize','12px');
                        }else{//当前标标签离顶部高度< 滚动条高度//当前标签离顶部高度+当前标签的高度>滚动条高度var t = $(this).attr('menu');var target='div[auto-to="' + t +'"]';$('.catalog').children(target).css('fontSize','48px').siblings().css('fontSize','12px');return;}}});};</script></body>
</html>

jQuery骚操作3号

有关总结:

$(window).height() : 窗口高度
$(document).height() : 滑轮高度
$('#nid').height() : 标签高度
$(window).crollTop() :右侧滑动轮滑动了多少
$('#nid').crollTop() : 标签的滑动轮滑动了多少

8.jQuery 标签操作

$('#nid').append('<a>ff</a>')   添加一个标签

$('#nid').after('<a>ff</a>')   在标签后添加一个标签

$('#nid').before('<a>ff</a>')   在标签前添加一个标签

$('#nid').empty()   清空标签

$('#nid').remove() 删除整个标签

var ni = $('#nid').detach() 可返回已经删除的nid 标签
$('$container').append(ni) : 可把删除的ni标签添加到container中

9.jQuery函数事件绑定

1.最基本的jQuery事件绑定:页面完全加载完成后才执行事件

1.1

$('li').click(function func(){ // 为每一个li绑定这个事件(批量)
  var temp= = $(this).text(); // 但在后面添加进来的不会被绑定事件
  alert(temp);
});

1.2

$('li').bind('click',function(){
  //与上面的绑定方式一毛一样
});

2.文档准备好就绪之后就执行,而不是js在页面完全加载出来才执行

2.1

$(document).ready(function(){
  // 当前文档结构准备好了(标签都加载出来了),但是页面(标签内容)还没有完全加载出来
});

2.2

$(function(){

});

3.特殊的绑定方式:委托,适合批量事件绑定

$(function(){ // 原理:当事件触发的时候才零时绑定上
  $('ul').delegate('li','click',function(){ // 就算后面再添加事件进来也会被绑定
    var temp = $(this).text();
    alert(temp);
  })
});

4.移除绑定的事件

两个特殊的关键字:$('li:last').unbind('click');  
         $('ul').delegate('li','click')

5.小例子

<!DOCTYPE html>
<html><head lang = 'en'><meta charset= 'utf8'><title></title></head><body><div style='border:1px solid #dddddd; width:600px; position:absolute;'>   <!--position绝对位置--><div id='title' style = 'background-color:black; height:40px; color:white;'> 标题</div><div style='height:300px;'>内容</div></div><script src='jquery-3.3.1.js'></script><script>$(function(){//页面加载完成之后自动执行
                $('#title').mouseover(function(){   // 给title所在的标签绑定鼠标事件,添加鼠标移动
                    $(this).css('cursor','move');   // 增加样式
                }).mousedown(function(e){   // 拓展:1.mousedown当鼠标事件 2.keydown  当按下键盘的时候的事件//console.log($(this).offset());  // offset 标签离左上角的位置距离var _event = e||window.event;// 原始鼠标横纵坐标位置var ord_x = _event.clientX;var ord_y = _event.clientY;var parent_left = $(this).parent().offset().left;var parent_top = $(this).parent().offset().top;$(this).bind('mousemove',function(e){    // 当鼠标点击的时候绑定框框var _new_event = e || window.event;    // 鼠标移动距离就是框移动的距离var new_x = _new_event.clientX;var new_y = _new_event.clientY;var x = parent_left + (new_x - ord_x);var y = parent_top + (new_y - ord_y);$(this).parent().css('left',x +'px');  //给新移动的地方添加距离样式
                        $(this).parent().css('top',y +'px');});}).mouseup(function(){$(this).unbind('mousemove');    // 当鼠标放开的时候绑定解开
                    });});</script>    </body>
</html>

鼠标托动框

10.jQuery扩展方法

jQuery方法一般写为自执行函数,写在js文件里

扩展方法1号:

jQuery.extend({shushu:function(){return 'zui_shuai';},qinqin:function(){return 'shaobin';}
});
var ret = $.shushu();   // 直接通过$.直接访问
alert(ret);

扩展方法2号:

jQuery.fn.extend({zhaozhao:function(){return 'mei'}
});
var ret = $('#id').zhaozhao();   // 选择器扩展访问
alert(ret);

都放在自执行函数里:

(function(arg){arg.extend({shushu:function(){return 'zui_shuai';},qinqin:function(){return 'shaobin';}});arg.fn.extend({zhaozhao:function(){return 'mei'}});
})(jQuery);

11.底部滚动条(很重要!)

// min-width:980px;当小于980px底部就出现滚动条

<html>
<head>
<meta charset='utf-8'>
</head>
<body><div style='min-width:980px;'>  // min-width:980px;当小于多少时底部就出现滚动条<div style='width:20%; float:left'>111111111111111111111</div><div style='width:80%; float:left'> 22222222222222222</div></div></body>
</html>

小知识:

无论是什么样式,只要在最后加上important,就表示此标签优先级最高,它最流弊!!例:
background-color:red:important;

转载于:https://www.cnblogs.com/Vera-y/p/10456518.html

html_jQuery相关推荐

  1. php开发是可视的吗,javascript,html_Jquery判断页面元素是否在浏览器的可视区域内,javascript,html,css,html5 - phpStudy...

    Jquery判断页面元素是否在浏览器的可视区域内 前端开发中,有时需要判断某个元素是否在浏览器的可视区域内,或者是否已经滚动出了可视区域.首先想到的便是javascript操作,原生方法自然可以,不过 ...

  2. ajax调取mysql数据显示在html_jQuery+Ajax+js请求json格式数据并渲染到html页面

    json格式的数据文件有两种方式 一种是xxx.json文件 一种是xxx.php文件 前者是json格式的文件 后者是输出json格式的文件 前者是本地的文件 后者是获取数据库的数据再输出成json ...

最新文章

  1. 就在明天!对话晶泰科技赖力鹏:AI制药独角兽的崛起之路
  2. 判断题:oracle自带的sql语言环境是pl/sql,Oracle之PL/SQL学习笔记之数据类型(三)
  3. OpenCASCADE可视化:3D演示之3D术语表
  4. boost::hana::is_subset用法的测试程序
  5. 你家猫砸东西是不是也专挑贵的砸?
  6. 鸿蒙系统适配开发,捕获科技拟建立鸿蒙开发组 为区块链钱包客户适配鸿蒙系统做筹备...
  7. Android SurfaceFlinger
  8. android上方导航条跳转页面,Native Navigation导航组件的使用说明
  9. Windows2008R2部署SharePoint Server 2013(2)---安装篇
  10. pytorch bert文本分类_一起读Bert文本分类代码 (pytorch篇 三)
  11. (3)Spring框架----Bean实例化的几种方式对比
  12. C 语言学习笔记(一):C 语言的开发环境
  13. linux wifi信道,2.4G wifi 的频道/信道 20M 40M的概念,区别
  14. Python微信文章 抓取转PDF
  15. Mapped Statements collection already contains value
  16. Linux驱动的地址空间和硬件地址空间说明——摘自华清远见嵌入式园地 .
  17. 关于程序员的那些段子,你能看懂几个?
  18. delta波 意识(摘要)
  19. 总结]关于守护进程解释文章
  20. 5G 中的SDN/NFV 和云计算

热门文章

  1. 【Excel】+冻结前两行
  2. 攻防世界 reverse 新手题wp (第二周)
  3. CSS 相对|绝对(relative/absolute)定位
  4. 这几个SpringBoot前后端分离项目(附源码),改改就能换钱。。。
  5. Part I 空气曲棍球 Chapter7(7.1 Understanding Textures)
  6. 导出数据到excel中的问题
  7. java无序数组找最长连续子串,算法题整理
  8. Vim和Ctags使用心得---在Taglist中加入VHDL语言
  9. html块级元素转换内联,内联元素和块级元素相互转换
  10. 机器学习、深度学习知识点总结