jQuery:对Dom和js的封装模块
jQuery 低版本(1.x)兼容IE,jquery下载:
若不考虑兼容ie,可下载最新版
我用的jQuery版本:
可以把min.js文件转换为.js文件滴东东:
jQuery提供所有的方法:
1.基本选择器
获取标签,修改内容($==jQuery)
112222adfsasd //
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是元素});
小例子:对表格的操作(选中,取消,反转)
123 1233 123 1233 123 1233
小小例子:网页侧目录(会动的哟)
$(window).scroTop() : 窗体滚动多少,也可在scrollTop里添加值进行设置窗体滚动到的位置
小小小例子: 返回顶部
我是一个占位符
占位结束
返回顶部 页面内容
终极版的关键语句:
.gotop:hover:after{ // hover鼠标移上去时应用这个样式}.gotop:hover .content{ // 把content设置为可见 visibility:visible;}
7.关于标签位置
$(this).offset(): 当前标签离整个屏幕左上角的位置(离顶部和左部)
$(this).postion(): 当前标签离父标签(有多远)的位置
xx.height() 相对于父框不包括边框的高度
xx.weight() 相对于父框 不包括边框的宽度xx.innerheight :包括边框的高度
xx.innerweight :包括边框的宽度小小小小例子: 左边框内容随右边框内容变化而变化
有关总结:
$(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.小例子
标题内容
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底部就出现滚动条
// min-width:980px;当小于多少时底部就出现滚动条11111111111111111111122222222222222222
小知识:
无论是什么样式,只要在最后加上important,就表示此标签优先级最高,它最流弊!!例:background-color:red:important;