1.jQuery定义(封装好的js)
jQuery由美国人John Resig于2006年创建,
jQuery是目前最流行的JavaScript 程序库 ,
它是对JavaScript对象和函数的封装。
它的设计思想是write less,do more。
包含关系
java开发工程师 jQuery用的多 部分需求 方便代码量少
前端 js用的多 所有的需求
题外话:jQuery 和 DOM区别(摘录)
DOM对象,即是我们用传统的方法(javascript)获得的对象。
jQuery对象即是用jQuery类库的选择器获得的对象;
它就是通过jQuery包装DOM对象后产生的对象,它是jQuery独有的。
var dom = document.getElementById("id"); //DOM对象
var $obj = $("#id"); //jQuery对象;
2.为什么使用jQuery?
(1)js实现隔行换色
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<script type="text/javascript">
window.onload = function(){
var trs = document.getElementsByTagName("tr");
for(var i=0;i<trs.length;i++){
if(i%2==0){
trs[i].style.background = "red";
}
}
}
</script>
</head>
<body>
<form action="">
<table>
<tr><td>序号</td><td>订单号</td><td>商品名称</td><td>价格</td></tr>
<tr><td>1</td><td>32</td><td>53</td><td>价35</td></tr>
<tr><td>2</td><td>4</td><td>商品53称</td><td>价53</td></tr>
<tr><td>2</td><td>4</td><td>商品53称</td><td>价53</td></tr>
<tr><td>2</td><td>4</td><td>商品53称</td><td>价53</td></tr>
<tr><td>2</td><td>4</td><td>商品53称</td><td>价53</td></tr>
<tr><td>2</td><td>4</td><td>商品53称</td><td>价53</td></tr>
<tr><td>2</td><td>4</td><td>商品53称</td><td>价53</td></tr>
</table>
</form>
</body>
</html>
(2)jQuery实现隔行换色
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(function(){
$("tr:even").css("background","red");
});
</script>
</head>
//省略,与上方一样
</html>
3.jQuery语法结构
$(selector).action(); //$(选择器).action(事件);
$(function(){}); //初始化函数,必须要写。
工厂函数$(): 将DOM对象转化为jQuery对象
选择器 selector: 获取需要操作的DOM 元素
方法action(): jQuery中提供的方法,其中包括绑定事件处理的方法
4.引入jQuery类库
jquery-1.8.3.min (.js) 放在js文件夹里
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
写程序时,还需要加<script type="text/javascript"></script>
不能再原来的基础上写。
同时也可以在网上引入比如
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
题外话:
jquery1.8 编译的 HTML 帮助文件 (.chm) api
相当于新华字典
ctrl + f 查找
5.jQuery-HelloWorld-实现弹出提示框
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" >
$(function(){
alert("快乐");
});
</script>
和body里的内容 同时执行
6.jQuery应用实战
6.1 addClass( )添加样式
addClass( )添加样式
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<style type="text/css">
.h{
background:red
}
</style>
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(function(){
$("tr:even").addClass("h");
//获取对应的偶数行
});
</script>
</head>
<body >
<form action="" >
<table >
<tr><td>序号</td><td>订单号</td><td>商品名称</td><td>价格</td></tr>
<tr><td>1</td><td>32</td><td>53</td><td>价35</td></tr>
<tr><td>2</td><td>4</td><td>商品53称</td><td>价53</td></tr>
<tr><td>2</td><td>4</td><td>商品53称</td><td>价53</td></tr>
<tr><td>2</td><td>4</td><td>商品53称</td><td>价53</td></tr>
<tr><td>2</td><td>4</td><td>商品53称</td><td>价53</td></tr>
<tr><td>2</td><td>4</td><td>商品53称</td><td>价53</td></tr>
<tr><td>2</td><td>4</td><td>商品53称</td><td>价53</td></tr>
</table>
</form>
</body>
</html>
6.2 css( )设置样式
</script>
<script type="text/javascript">
$(function(){
$("tr:even").css("background","red");
});
</script>
6.3 show( )、hide( )元素显示和隐藏
<script type="text/javascript">
$(document).ready(function(){
//(document).ready 新的省略不写
$(".btn1").click(function(){
$("p").hide();
});
$(".btn2").click(function(){
$("p").show();
});
});
</script>
<body>
<p>This is a paragraph.</p>
<button class="btn1">Hide</button>
<button class="btn2">Show</button>
</body>
点击hide隐藏,点击show出现。
6.4 next()链式操作
next 是 下一个
<body>
<ul>
<li>list item 1</li>
<li>list item 2</li>
<li class="third-item">list item 3</li>
<li>list item 4</li>
<li>list item 5</li>
</ul>
<script>
$('li.third-item').next().css('background-color', 'red');
</script>
</body>
6.5 css({})隐式迭代(数组遍历)
$(function() {
$("li").css({"font-weight":"bold","color":"red"});
});
案例:
<script>
$(document).ready(function(){
$("button").click(function(){
$("p").css({"background-color":"yellow","font-size":"200%"});
});
});
//每个p进行遍历
</script>
<body>
<h2>这是标题</h2>
<p style="background-color:#ff0000">这是一个段落。</p>
<p style="background-color:#00ff00">这是一个段落。</p>
<p style="background-color:#0000ff">这是一个段落。</p>
<p>这是一个段落。</p>
<button>为 p 元素设置多个样式</button>
</body>
6.6 DOM对象和jQuery对象的转化
除了jQuery对象就是DOM对象
(1)DOM对象转为jQuery对象
var two =document.getElementById("2"); //DOM对象
var $two_new =$(two); //DOM对象转化为jQuery对象
前面的$可以省略,建议要加,方便别人看懂
typeof 不用 这边判断用 instanceof 也是 特殊的一个
(2)jQuery对象转为DOM对象
第一种方式:
var $two_new =$ ("#two "); //jQuery对象
var two_after =$two_new [0]; //DOM对象
第二种方式:
var $two_new =$("# two "); //jQuery对象
var two_after2 =$two_new.get(0); //DOM对象
举例:
<script src="js/jquery-1.8.3.min.js" type="text/javascript">
</script>
<script>
$(function(){
var two = document.getElementById("2");
var $two_new = $(two);//jQuery对象
var two_after = $two_new[0];//DOM对象
var two_after = $two_new.get(0);//DOM对象
if(two_after instanceof jQuery){
alert("jQuery对象");
}else{
alert("DOM对象");
}
});
</script>
<body>
<div>快乐</div>
<div id="2">你好</div>
<div>真棒</div>
</body>
7.扩展-初始化函数-$(document).ready()与window.onload的区别
window.onload的执行时机:
必须等待网页中所有的内容加载完毕后
(包括图片)才能执行
如果有两个window.onload,那么会执行第二个。
题外话:
初始化函数
当<script></script>
写在上面时,需要初始化函数,
$(document).ready(function(){});
当写在下面时,就不用写。
jQuery为多元素添加统一样式(摘录)
$('p,#id,.class').css({'color':'#fff','font-size':'14px'});
----2021.10.06&10.07