仓库: 可以把很多东西放到这个仓库里面。找东西只需要到仓库里面查找到就可以了。
JavaScript库:即 library,是一个封装好的特定的集合(方法和函数)。
从封装一大堆函数的角度理解库,就是在这个库中,封装了很多预先定义好的函数在里面,
比如动画animate、hide、show,比如获取元素等
简单理解:就是一个JS 文件,里面对我们原生js代码进行了封装,存放到里面。
这样我们可以快速高效的使用这些封装好的功能了。
1、jq代码写在哪里?jq入口函数
<script src="js-min-jqury.js"></script>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
}
</style>
</head>
<body>
<!-- 写上边需要特殊操作 -->
<script>
// 1.等着页面DOM加载完毕,再去执行js代码
// $(document).ready(function () {
// $('div').hide();
// })
// 2.等着页面DOM加载完毕,再去执行js代码
// $(function () {
// $('div').hide();
// })
</script>
<div></div>
<script>
// 脚本写在下面 是最好的
// 功能:隐藏这个div
$('div').hide();
</script>
</body>
2、jq对象和dom对象的转换
<script src="js-min-jqury.js"></script>
<style>
div {
width: 100px;
height: 100px;
background-color: pink;
}
</style>
<div></div>
<div></div>
<script>
// 获取dom对象
const div = document.querySelector('div');
console.log(div);
// 获取jq对象 获取过来的jq对象,是一个伪数组
console.log($('div'));
// 需求:把第二个div的颜色改成黄色
$('div')[1].style.backgroundColor = 'yellow'
$('div').get(1).style.backgroundColor = 'red'
</script>
3、jQury顶级对象
1.是jQuery的别称,在代码中可以使用jQuery代替是jQuery的别称,在代码中可以使用jQuery代替是jQuery的别称,在代码中可以使用jQuery代替,但一般为了方便,通常都直接使用$
2.是Query的顶级对象,相当于原生JavaScript中的window。把元素利用是Query的顶级对象,相当于原生JavaScript中的window。把元素利用是Query的顶级对象,相当于原生JavaScript中的window。把元素利用包装成jQuery对象,就可以调用
jQuery的方法。
// 1.$是jQuery的别称
$(function(){
alert(11);
});
// 2.也可以直接用jqury
jQuery(function () {
alert(21);
});
4、选择器与赋值
给多个元素赋值,也可以是一个
遍历内部DOM元素(伪数组形式储)的过程就叫做隐式选代
简单理解:给匹配到的所有元素进行循环遍历,执行相应的方法,而不用我们再进行循环,简化我们的操作方便我们调用。
<ul>
<li>330</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<!-- jq入口函数 -->
<script>
$(function(){
// 获取多个对象 隐士迭代
$('ul li').css('color','pink');
// 获取1个元素
$('ul li')[1].style.color='green';
})
</script>
4.1、筛选选择器
<ul>
<li>很多的li</li>
<li>很多的li</li>
<li>很多的li</li>
<li>很多的li</li>
</ul>
<ol>
<li>ol里面的li</li>
<li>ol里面的li</li>
<li>ol里面的li</li>
<li>ol里面的li</li>
</ol>
<script>
$(function () {
// 选择ul 里面的第一个li
$('ul li:first').css('color','red');
// 选择ul里的第三个li
$('ul li:eq(2)').css('color','pink');
// 选择ol里面的奇数li
$('ol li:odd').css('color','blue');
// 选择ol里面的偶数li
$('ol li:even').css('color','skyblue');
})
</script>
4.2、筛选方法–选出父子元素
<div class="yeye">
我是爷爷
<div class="father">
我是爸爸
<div class="son">儿子</div>
</div>
</div>
<div class="nav">
<p>我是屁</p>
<div>
<p>我是p</p>
</div>
</div>
<script>
$(function () {
//1.父 parent()返回的是最近一级的父级元素 亲爸爸
$('.son').parent().css('color', 'pink');
//2.find() 类似后代选择器,会把所有后代都选了
$('.nav').find('p').css('color', 'blue');
//3.子 亲儿子 只选择了最近的p
$('.nav').children('p').css('color','green');
})
</script>
4.3、筛选方法–选出兄弟元素
<ol>
<li>我是ol里面的li</li>
<li>我是ol里面的li</li>
<li class="item">我是ol里面的li</li>
<li>我是ol里面的li</li>
<li>我是ol里面的li</li>
<div>fsdfzve </div>
</ol>
// 选择所有的兄弟,处了他自己
$('.item').siblings('li').css('color','red');
//siblings()括号中可以不写内容
$('.item').siblings().css('color', 'red');
// 选择我之前的所有兄弟
$('.item').prevAll().css('color', 'green');
// 选择我之后的所有兄弟
$('.item').nextAll().css('color', 'green');
括号中间如果加标签或者其他,就按这个标签规定的内容选择
// 选择我之后的所有li兄弟
$('.item').nextAll('li').css('color', 'green');
选择某个特定元素
<ul>
<li>我是ul里面的li</li>
<li>我是ul里面的li</li>
<li>我是ul里面的li</li>
<li>我是ul里面的li</li>
<li>我是ul里面的li</li>
</ul>
// 选择某一个元素
$('ul li:eq(2)').css('color', 'red');
$('ul li').eq(3).css('color','yellow');
<div class="d1 current">我是有current的div</div>
<div class="d2">我只是一个普通的div</div>
4.3、筛选方法–判断是否有这个类
//判断他是否有类名 引号中的类,不加点
console.log($('.d1').hasClass('current'));//true
5、排他思想
<button>快速</button>
<button>快速</button>
<button>快速</button>
<button>快速</button>
<button>快速</button>
<button>快速</button>
<button>快速</button>
<script>
$('button').click(function () {
// 当前元素换成pink this无需‘’
$(this).css('background', 'pink');
// 其他元素取消颜色
$(this).siblings('button').css('background', '');
})
</script>
还可以采取链式编程来写,节约代码
$(this).siblings('button').css('background', '');
6、修改样式css方法
<script src="js-min-jqury.js"></script>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
}
</style>
<div></div>
1.参数只有属性名,则是返回属性值
console.log($('div').css('background-color'));
console.log($('div').css('width'));
2.参数是属性名,属性值,逗号分隔,是设置一组样式,属性必须加引号,值如果是数字可以不用跟单位和引号
$('div').css('width', 300);
3.参数可以是对象形式,方便设置多组样式。属性名和属性值用冒号隔开,属性可以不用加引号
$('div').css({ "background-color": "yellow", height: 100, width: 100 });
7、修改样式操作类
<script src="js-min-jqury.js"></script>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
margin: 100px auto;
transition: all .5s;
}
.current {
background-color: red;
transform:rotate(360deg);
}
</style>
<div ></div>
7.1、添加类 addClass(‘类名’)
$('div').click(function(){
$(this).addClass('current');
})
7.2、删除类 removeClass(‘类名’)
$('div').click(function () {
$(this).removeClass('current');
});
7.3、切换类
$('div').click(function () {
$(this).toggleClass('current');
});