call和apply
call和apply的区别
二者都可以改变当前的this 默认是window,区别在于apply方法要将参数放入数组中再传
aa.call('abc',2,3);
aa.apply('abc',[2,3]);
函数的继承
//父类
function Fclass(name, age){
this.name = name;
this.age = age;
}
Fclass.prototype.showName = function(){
alert(this.name);
}
Fclass.prototype.showAge = function(){
alert(this.age);
}
//子类
function Sclass(name, age, job){
//调用父类的call方法 并传入子类的this,可实行属性的继承
Fclass.call(this,name,age);
this.job = job;
}
//方法继承 将父类的一个实例赋值给子类的原型
Sclass.prototype = new Fclass();
Sclass.prototype.showJob = function(){
alert(this.job);
}
新增选择器
window.onload = function(){
var div1 = document.querySelector('#div1');
alert(div1);
var li = document.querySelectorAll('.list li');
alert(lis.length);
}
为什么要是使用jquery 因为js原生代码不具有兼容性,并且jquery 已经封装好了。
jQuery加载
$(document).ready(function(){
var $div = $('#div');
alert('jquery:' + $div.html());
//jquery:这是一个div元素
})
$(function(){
var $div = $('#div');
alert('jquery:'+$div.html());)
})
jQuery选择器
jquery选择器可以快速地选择元素,选择规则和css样式相同,使用length属性判断是否选择成功
$(document) //选择整个文档对象
$('li') //选择所有的li元素
$('#myId') //选择id为myId的网页元素
$('.myClass') // 选择class为myClass的元素
$('input[name=first]') // 选择name属性等于first的input元素
$('#ul1 li span') //选择id为为ul1元素下的所有li下的span元素
对选择集进行修饰过滤(类似CSS伪类)
$('#ul1 li:first') //选择id为ul1元素下的第一个li
$('#ul1 li:odd') //选择id为ul1元素下的li的奇数行
$('#ul1 li:eq(2)') //选择id为ul1元素下的第3个li
$('#ul1 li:gt(2)') // 选择id为ul1元素下的前三个之后的li
$('#myForm :input') // 选择表单中的input元素
$('div:visible') //选择可见的div元素
对选择集进行函数过滤
$('div').has('p'); // 选择包含p元素的div元素
$('div').not('.myClass'); //选择class不等于myClass的div元素
$('div').filter('.myClass'); //选择class等于myClass的div元素
$('div').first(); //选择第1个div元素
$('div').eq(5); //选择第6个div元素
选择集转移
$('div').prev('p'); //选择div元素前面的第一个p元素
$('div').prevAll('p'); //选择div元素前面所有的p元素
$('div').next('p'); //选择div元素后面的第一个p元素
$('div').nextAll('p'); //选择div元素后面所有的p元素
$('div').closest('form'); //选择离div最近的那个form父元素
$('div').parent(); //选择div的父元素
$('div').children(); //选择div的所有子元素
$('div').siblings(); //选择div的同级元素
$('div').find('.myClass'); //选择div内的class等于myClass的元素
jQuery样式操作
// 获取div的样式
$("div").css("width");
$("div").css("color");
//设置div的样式
$("div").css("width","30px");
$("div").css("height","30px");
$("div").css({fontSize:"30px",color:"red"});
操作样式类名
$("#div1").addClass("divClass2") //为id为div1的对象追加样式divClass2
$("#div1").removeClass("divClass") //移除id为div1的对象的class名为divClass的样式
$("#div1").removeClass("divClass divClass2") //移除多个样式
$("#div1").toggleClass("anotherClass") //重复切换anotherClass样式
click事件
$(function(){
$('#btn').click(function(){
$('.box').toggleClass('sty');
});
})
jQuery索引值
$(function(){
$('.list li').click(function(){
//alert(this.innerHTML);原生
//alert($(this).html());
alert($(this).index());
})
})
jQuery做选项卡
$(function(){
$('#btns input').click(function(){
$(this).addClass('cur').siblings().removeClass('cur');
$('#contents div').eq($(this).index()).addClass('active').siblings().removeClass('active');
});
})
jQuery属性操作
$(function(){
//alert($('.box').html());读
//$('.box').html('百度网')写
//用于读取和写入属性
//$('.box').attr({title:"这是一个div!"});
//alert($('.box').attr('class'));
var $src = $('img1').attr('src');
alert($src);
$('#img1').attr({
src:"images/123.jpg",
alt:"图片"
});
alert($('#check').prop('checkbox'));
alert($('.box2').html())//带标签
alert($('.box2').text())//不带标签
})
jQuery特殊效果
$(function(){
$('#btn').click(function(){
$('.box').fadeOut();
$('.box').fadeIn();
$('.box').fadeToggle();//淡入淡出
$('.box').hide();
$('.box').show();
$('.box').toggle();//显示隐藏
$('.box').slideUp();
$('.box').slideDown();
$('.box').slideToggle();//上收下展
});
})