JQuery框架

news/2024/11/16 5:56:06/

文章目录

  • JQuery框架
    • 找到某标签,读或设置其style、属性
        • css,attr
      • 设置style
      • 事件驱动
          • 单击添加、取消边框
          • 绑定只响应一次
          • 鼠标悬停在标题显示内容,否则不显示
    • 选择器
      • 过滤器
        • 下标过滤器:`基本选择器:下标过滤器`
          • 隔行换色
        • 属性过滤器: `基本过滤器[属性过滤器]`
        • 内容过滤器: `基本选择器:内容过滤器`
        • 表单选择器
        • 其他选择器
      • 操作元素的html属性,样式属性,内容等的方法
      • 读取标签html、内容
      • 删除添加类样式名
      • 删除标签节点
      • 插入、读取内容html、text
      • 获取所有的层each,遍历function(index,chk)
        • 复选框
        • 获取该元素的前一个元素、子元素
          • 购物车
          • 轮播图

JQuery框架

JQ案例模板

该部分需要下载个jquery.js文件,我下载的是jquery-3.6.0.js
<script src="jquery-3.6.0.js"></script>要注意文件jquery-3.6.0.js放在哪,位置不同," "内的内容不同

找到某标签,读或设置其style、属性

css,attr

    <script src="jquery-3.6.0.js"></script>
<body><h1>Hello</h1><h1>World</h1><script>// 找出页面中的所有h1标签,设置其颜色为红色// 核心函数:工厂函数,相当于document.getElementByTagName('h1')// 工厂函数返回值就是一个jquery对象$('h1').css('color','red');  // 一个参数为读,两个参数为写$('h1').attr('haha','123'); // 设置属性alert(a);</script> 
</body>

2、核心函数:$('选择器') 或者 jQuery('选择器')
按照选择器的规则在网页中选取元素,将所有选中的元素包装成JQuery对象并返回

种类选择器
id选择器#id名
类选择器.类名
标签选择器标签名
伪类选择器a:hover
后代选择器A B
子选择器A>B

设置style

     <script src="jquery-3.6.0.js"></script>
<body><div><p>层中的段落</p><a href="#">百度</a><section><p>abc</p></section><div> </div></div><p class="odd">层外部的段落1</p><p class="even">层外部的段落2</p><p class="odd">层外部的段落3</p><p id="p4">层外部的段落4</p><script>// 设置所有的段落中的文字的颜色为红色$('p').css('color','red');   // 一个参数为读,两个参数为写// 设置所有实施了类样式odd的元素加一个边框$('.odd').css('border','1px solid red');// 选取id为p4加边框$('#p4').css('border','1px solid red');// 选取div后代p加边框,子孙后代都选$('div p').css('border','1px solid red');// 选取div子代p加边框,只能子代,不能孙代$('div>p').css('border','1px solid red');</script> 
</body>

工厂函数的返回值是一个jQuery对象,只能调用jQuery属性和方法,不能再调用JavaScript中元素对象的属性和方法
jquery对象=>dom元素对象:jquery对象名[下标]
dom元素对象=>jquery对象:$(dom元素对象名)

<script>// $('p').style.border='1px solid red';  //$('p')是jquery对象  错误// jquery对象=>dom元素对象  $('p')[0]是dom元素对象$('p')[0].style.border='1px solid red';$($('p')[0]).css('border','1px solid red'); // dom元素对象=>jquery对象
</script> 

事件驱动

事件名前面没有onclick,dblclick,mouseover
订阅事件处理函数:jquery对象.bind('事件名',function(){})jquery对象.事件名(function(){})

单击添加、取消边框
    <script src="jquery-3.6.0.js"></script>
<body><p class="odd">层外部的段落3</p><p id="p4">层外部的段落4</p><button id="btnSet">设置段落边框</button><script>$('#btnSet').click(function(){if(parseInt($('p').css('borderWidth'))){$('p').css('border','0px none black');}else{$('p').css('border','1px solid red');}});</script> 
</body>

取消绑定事件
jquery对象.unbind():取消jquery对象上所有事件的所有事件处理函数
jquery对象.unbind(事件名):取消jquery对象上指定事件的所有事件处理函数
jquery对象.unbind(事件名,函数名):取消jquery对象上指定事件的指定事件处理函数

   <style>#div1{width: 200px;height: 200px;border:1px solid red;}</style><script src="jquery-3.6.0.js"></script>
</head>
<body><div id="div1"></div><button id="btnBind">绑定事件处理函数</button><button id="btnUnBind1">取消绑定所有事件处理函数</button><button id="btnUnBind2">取消绑定click事件处理函数</button><button id="btnUnBind3">取消绑定click事件f1处理函数</button><script>$('#btnBind').click(function(){//给div绑定click mousemove事件的处理函数$('#div1').click(f1 = function(){console.log('第一个单击事件处理函数')}).click(function(){  // 连缀写法console.log('第二个单击事件处理函数')}).mousemove(function(){console.log('鼠标移动');})});$('#btnUnBind1').click(function(){$('#div1').unbind();});$('#btnUnBind2').click(function(){$('#div1').unbind('click');});$('#btnUnBind3').click(function(){$('#div1').unbind('click',f1);});</script> 
</body>

特殊事件处理函数的绑定:
jquery对象.one(事件名,function(){}) :时间处理函数只响应一次事件的发生,就自动取消绑定

绑定只响应一次
   <style>#div1{width: 200px;height: 200px;border:1px solid red;}</style><script src="jquery-3.6.0.js"></script>
<body><div id="div1"></div><button id="btnOne">取消绑定click事件f1处理函数</button><script>$('#btnOne').click(function(){$('#div1').one('mouseover',function(){console.log('响应一次')});});</script> 
</body>

经常组合使用的:mouseover和mouseleave

鼠标悬停在标题显示内容,否则不显示
    <script src="jquery-3.6.0.js"></script>
</head>
<body><div id="news"><h3>新闻标题</h3><div class="content" style="display: none;">新闻内容</div></div><script>$('#news>h3').mouseover(function(){$(this).next().css('display','block');}).mouseleave(function(){$(this).next().css('display','none');});</script> 
</body>

选择器

所有css选择器就是基础选择器

过滤器

下标过滤器:基本选择器:下标过滤器

函数说明
first下标=0
last下标=长度-1
even下标值为偶数
odd下标值为奇数
eq(index)下标值=index
gt(index)下标值>index
lt(index)下标值>index
隔行换色
    <script src="jquery-3.6.0.js"></script>
</head>
<body><table><tr><td>商品名称</td><td>单价</td><td>库存数量</td><td>折扣率</td></tr><tr><td>毛尖茶</td><td>60</td><td>1000</td><td>0.9</td></tr><tr><td>普洱</td><td>120</td><td>100</td><td>0.99</td></tr><tr><td>铁观音</td><td>50</td><td>300</td><td>0.8</td></tr><tr><td>君山银针</td><td>80</td><td>230</td><td>0.85</td></tr><tr><td>大红袍</td><td>10000</td><td>30</td><td>1</td></tr></table><script>//$('tr:odd').css('backgroundColor','#999'); // odd过滤器 偶数行背景色//$('tr:even').css('backgroundColor','#ccc'); // even过滤器 奇数行背景色$('tr:gt(2)').css('backgroundColor','#ccc'); // gt过滤器 第3行以后的背景色</script> 
</body>

属性过滤器: 基本过滤器[属性过滤器]

函数说明
属性名保留有属性名指定属性的
属性名=value有属性并且属性值=value
属性名^=value有属性并且属性值以value开始
属性名$=value有属性并且属性值以value结尾
属性名*=value有属性并且属性值包含value
<body><ul><li>苹果</li><li price="20">水蜜桃</li><li>菠萝</li><li price="18">火龙果</li><li price="10">香蕉</li></ul><script src="jquery-3.6.0.js"></script><script>// $('li[price]').css('color','red');//修改有属性price的li的字体颜色// $('li[price^="1"]').css('color','red');//修改有属性price以1开头的li的字体颜色$('li[price$="0"]').css('color','red');//修改有属性price以0结尾的li的字体颜色</script> 
</body>

内容过滤器: 基本选择器:内容过滤器

函数说明
contains(文本)元素的内容中包含文本
empty没有内容的
parent有内容的
has(选择器)内容中包含有选择器选取的元素
<body><div></div><div>我和我的团</div><div>我的父亲</div><div><a href="#">百度</a></div><script src="jquery-3.6.0.js"></script><script>$('div:contains(我)').css('color','red');// 内容中包含我$('div:empty').css('width','100px').css('height','50px').css('border','1px solid red');// 设置div为空的style$('div:has(a)').css('width','100px').css('height','50px').css('border','1px solid red');// 设置div中有a标签的style</script> 
</body>

表单选择器

专门用于获取表单中的表单元素

函数说明
:input选择所有的表单元素
:text选择所有的文本框
:password选择所有的密码文本框
:radio选择所有的单选按钮
:checkbox选择所有的复选框
<body><form action="#" method="post"><input type="text" placeholder="abc"><br><input type="text" placeholder="def"><br><input type="password" placeholder="登入密码"><br><input type="password" placeholder="银行密码"><br><input type="radio" name="gender"><br><input type="radio" name="gender"><br><input type="checkbox">看书<br><input type="checkbox">踢足球<br><input type="checkbox">玩游戏<br><input type="checkbox">交女朋友<br></form><script src="jquery-3.6.0.js"></script><script>$(':input').css('border','1px solid red'); // 所有console.log($(':input')); console.log($(':text')); // text框个数console.log($(':radio'));console.log($(':checkbox'));</script> 
</body>

其他选择器

函数说明
:disabled禁用的
:enabled启用的
:checked选中的
:selected被选中的
:hidden隐藏的
:visible可见的

操作元素的html属性,样式属性,内容等的方法

函数说明
prop()读写系统定义的属性
attr()读写所有的属性,包括了自定义的属性
<body><a href="http://www.baidu.com"></a><a href="http://www.cmblogs.com"></a><button id="btnPropR">读href属性值</button><button id="btnPropW">修改href属性值</button><button id="btnNewAttr">新增xx属性值</button><button id="btnReadAttr">读属性值</button><script src="jquery-3.6.0.js"></script><script>$('#btnPropR').click(function(){// 读取第一个超链接元素的href属性值alert($('a').prop('href'));})$('#btnPropW').click(function(){// 修改所有a超链接元素的href属性值$('a').prop('href','www.baidu.com');})$('#btnNewAttr').click(function(){// 给超链接新增一个xx属性$('a').attr('xx','www.baidu.com');  //attr可以新增自定义属性,prop只能新增系统定义的属性})$('#btnReadAttr').click(function(){// 读取超链接新增的xx属性alert($('a').attr('xx')); //attr可以新增自定义属性,prop只能新增系统定义的属性})</script> 
</body>

读取标签html、内容

    <script src="jquery-3.6.0.js"></script><body><p class="odd">层外<a>部的</a>段落3</p><script>console.log($('p').html());  // 输出html    层外<a>部的</a>段落3  $('p').html('插入内容');      // 修改内容console.log($('p').html());  //输出html 插入内容 </script> 
</body>

删除添加类样式名

函数说明
css()读写样式属性值,一次只能读写一个样式属性
addClass()添加类样式名
removeClass()删除类样式名
$(this).parent().remove()删除该节点的父节点
    <style>.a{color:red;}.b{font-size: 20px;}.c{background-color: pink;}</style>
<body><div id="div1" >这是一个层</div><button class="create">新增一个类样式</button><button class="delete">删除一个类样式</button><script src="js/jquery.min.js"></script><script>$('.create').click(function(){//原来没有类样式,添加a类,原有1个类样式,添加b类//原有2个类样式,添加c类,原有3个类样式,弹出对话框var div = $('#div1')[0];switch(div.classList.length){case 0:$(div).addClass('a');break;case 1:$(div).addClass('b');break;case 2:$(div).addClass('c');break;case 3:alert('已经满了,不能添加类样式了');break;}})$('.delete').click(function(){//如果有类样式,就删除掉最后一个类样式//否则,弹出对话框,通知没有类样式了var div = $('#div1')[0];if(div.classList.length>0){var cls = div.classList[div.classList.length-1];$(div).removeClass(cls);}else{alert('已经没有类样式可以删除了');}})</script>
</body>

删除标签节点

<body><body><table id="cart"><tr class="data"><td><input type="checkbox" /></td><td id="aa">苹果IPAD</td><td>4500</td><td>2</td><td>9000</td><td><a class="delete" href="javascript:void(0);">删除</a></td></tr></table><script>$('.delete').click(function(){$(this).parent().parent().remove();  // 删除该标签的父标签});</script></body>
</body>

插入、读取内容html、text

<body><div id="div1"></div><button id="btnSetContent">在层中设置一个文本框</button><button id="btnReadContent">读取层中的内容</button><script>$('#btnSetContent').click(function(){//  //1 创建新元素//  var text = $('<input />');//  //2 操作html属性,样式属性,内容//  text.prop('type','text')//      .prop('value','输入你的账号')//      .css('color','red');//  //3 调用父元素的方式添加新元素//  $('#div1').append(text);var html = '<input type="text" value="输入你的账号..." />';$('#div1').html(html); // 插入内容})$('#btnReadContent').click(function(){alert($('#div1').html());  //读取内容})</script>
</body>

获取所有的层each,遍历function(index,chk)

复选框

    <script src="jquery-3.6.0.js"></script>
</head>
<body><table id="cart"><tr><th><input type="checkbox" class="chkAll" /></th><th>商品名称</th></tr><tr class="data"><td><input type="checkbox" class="chkOne"  /></td><td>华硕笔记本</td></tr><tr class="data"><td><input type="checkbox" class="chkOne"  /></td><td>苹果IPAD</td></tr></table><script>//给全选复选框订阅click事件的处理函数//其他复选框的checked = 全选复选框的checked$('.chkAll').click(function(){$('.chkOne').prop('checked', $(this).prop('checked'));})//给其他复选框订阅click事件的处理函数//所有其他复选框都选中,全选复选框才选中$('.chkOne').click(function(){var result=true;$('.chkOne').each(function(index,chk){result = result && $(chk).prop('checked');})$('.chkAll').prop('checked',result);});</script>
</body>

获取该元素的前一个元素、子元素

<body><script>var text = $(this).prev('input'); // this的前一个input标签var tds = $(this).children('td'); // 获取this所有子标签td</script> 
</body>
购物车
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>购物车</title>
</head>
<body><h2>我的购物车</h2><hr><table id="cart"><tr><th><input type="checkbox" class="chkAll" /></th><th>商品名称</th><th>单价</th><th>购买数量</th><th>小计</th><th>操作</th></tr><tr class="data"><td><input type="checkbox" class="chkOne"  /></td><td>华硕笔记本</td><td>4300</td><td><button class="sub">-</button><input type="text" value="1" readonly="readonly"><button class="inc">+</button></td><td>4300</td><td>                <a class="delete" href="javascript:void(0);">删除</a></td></tr><tr class="data"><td><input type="checkbox" class="chkOne"  /></td><td>苹果IPAD</td><td>4500</td><td><button class="sub">-</button><input type="text" value="2" readonly="readonly"><button class="inc">+</button></td><td>9000</td><td><a class="delete" href="javascript:void(0);">删除</a></td></tr><tr class="data"><td><input type="checkbox" class="chkOne" /></td><td>格力空调</td><td>2000</td><td><button class="sub">-</button><input type="text" value="1" readonly="readonly"><button class="inc">+</button></td><td>2000</td><td><a class="delete" href="javascript:void(0);">删除</a></td></tr><tr class="data"><td><input type="checkbox" class="chkOne" /></td><td>春兰空调</td><td>1600</td><td><button class="sub">-</button><input type="text" value="1" readonly="readonly"><button class="inc">+</button></td><td>1600</td><td><a class="delete" href="javascript:void(0);">删除</a></td></tr><tr class="info" style="display:none;"><td colspan="6" style="color:red;font-size: 20px;">购物车为空,没有购买数据</td></tr><tr><td>总计</td><td colspan="5"  class="total">16900</td></tr></table><script src="js/jquery.min.js"></script><script>$('.inc').click(function(){// 找到+按钮前的文本框var text = $(this).prev('input');// this的前一个input标签//读取文本框中的数量var quantity = parseInt(text.prop('value'));//加1quantity++;//写回text.prop('value',quantity);//重新计算价格calc();})$('.sub').click(function(){//找到-按钮后面的文本框var text = $(this).next('input');//读取文本框中的数量var quantity= parseInt(text.prop('value'));//减1quantity--;//写回text.prop('value',quantity);//判断修改后的数量是否小于等于0,if(quantity<=0){if(confirm('购买数量<=0,确定要删除吗?')){//询问是否删除,如果回答确定,删除按钮所在的行$(this).parent().parent().remove();}else{//否则,数量设置为1text.prop('value','1');}}            //重新计算价格calc();})//重新计算价格的方法function calc(){var total = 0;//总计初始化0//找到所有数据行.data$('.data').each(function(index,row){//处理一行//1 找出行中的列td并计算小计var tds = $(row).children('td');var qu = parseInt($(tds[3]).children('input').prop('value'));var price = parseFloat($(tds[2]).html());var val = price*qu;//将小计写回到小计列中$(tds[4]).html(val);//将小计加到总计中total += val;});//将总计写到表格中$('.total').html(total);}$('.delete').click(function(){if(confirm('确定要删除本行吗?')){//删除行$(this).parent().parent().remove();//重新计算价格calc();//判断还有没有数据行,如果没有了,显示提示信息if($('.data').length<=0){$('.info').css('display','block');}}})//给全选复选框订阅click事件的处理函数//其他复选框的checked = 全选复选框的checked$('.chkAll').click(function(){$('.chkOne').prop('checked', $(this).prop('checked'));})//给其他复选框订阅click事件的处理函数//所有其他复选框都选中,全选复选框才选中$('.chkOne').click(function(){var result=true;$('.chkOne').each(function(index,chk){result = result && $(chk).prop('checked');})$('.chkAll').prop('checked',result);});</script>
</body>
</html>
轮播图
<body><div id="swiper"><a href="#"><img src="images/1.jpg" alt="" class="show"></a><a href="#"><img src="images/2.jpg" alt="" class="hide"></a><a href="#"><img src="images/3.jpg" alt="" class="hide"></a><a href="#"><img src="images/4.jpg" alt="" class="hide"></a><ul><li class="current">1</li><li class="nocurrent">2</li><li class="nocurrent">3</li><li class="nocurrent">4</li></ul></div><script src="jquery.js"></script><script>//轮播图的js代码var timer;//定时器对象//找到所有的图片和显示进度的livar imgs = $('#swiper img');var lis  = $('#swiper li');//定时切换图片function play(){timer = setInterval(function(){//找到现在显示的图片的下标 ifor(var i=0;i<imgs.length;i++){if(imgs[i].className=='show'){break;}}//计算需要显示的图片的下标var next = i+1;if(next>=imgs.length){next =0;//已经到了最后一张图片的下一张,回到第一张}//设置类样式$(imgs[i]).removeClass().addClass('hide');$(imgs[next]).removeClass().addClass('show');$(lis[i]).removeClass().addClass('nocurrent');$(lis[next]).removeClass().addClass('current');},2000);}play();$('#swiper').mouseover(function(){clearInterval(timer);}).mouseleave(function(){play();})$('#swiper li').click(function(){imgs.removeClass().addClass('hide');lis.removeClass().addClass('nocurrent');//获取需要显示的图片的下标 = 被单击的li上的数字-1var i= parseInt($(this).html());i--;$(imgs[i]).removeClass().addClass('show');$(lis[i]).removeClass().addClass('current');})</script>
</body>

http://www.ppmy.cn/news/561151.html

相关文章

福州大学2021知识产权线上课程期末考试答案

网课期末试卷-客观题部分 1单选(2分) 世界上第一部著作权法是1710年生效的&#xff08; &#xff09;。 A.《联邦著作权法》 B.《版权法》 C.《安娜女王法》 D.《作者权法》 2单选(2分) 下列选项中&#xff0c;属于作品构成要件的是&#xff08; &#xff09;。 A.新…

c是过程化语言吗数据库,关于SQL错误的是()A、所有数据库的公共语言B、非过程化的C、统一的语言D、所有用SQL缩写的程序都...

关于SQL错误的是()A、所有数据库的公共语言B、非过程化的C、统一的语言D、所有用SQL缩写的程序都 更多相关问题 [多选] 在彩色电视机遥控系统中&#xff0c;属于模拟量控制的有()等几种。 [多选] 在色度信号记录处理中&#xff0c;家用录像机一般都要对色度信号经过()等处理。 …

Q1营收、净利双提速,为什么海信还要打出“造车”牌?

4月28日&#xff0c;港股家电巨头海信家电公布了新一季的财务业绩报告。 单从财报数据的基本面来看&#xff0c;2021年一季度海信家电营收、净利实现了新增长&#xff0c;符合市场及分析师的预期。 受此消息影响&#xff0c;4月29日港股开盘&#xff0c;海信家电股价走势较好…

2022-2028全球与中国涡旋压缩机市场现状及未来发展趋势

2021年全球涡旋压缩机市场销售额达到了47亿美元&#xff0c;预计2028年将达到61亿美元&#xff0c;年复合增长率&#xff08;CAGR&#xff09;为3.9%&#xff08;2022-2028&#xff09;。地区层面来看&#xff0c;中国市场在过去几年变化较快&#xff0c;2021年市场规模为 百万…

昔日的“国民奶茶”,今天“时代的眼泪”?

香飘飘为何不香了&#xff1f;&#xff01; 如果将时间指针拉回到2004年&#xff0c;在那个杯装奶茶市场尚且空白的时代&#xff0c;香飘飘凭借着速溶奶茶的品牌定位快速火遍大江南北。再加上加上消费趋势的助推&#xff0c;香飘飘一度傲立于市场之巅&#xff0c;深深根植在无…

医院his系统机房服务器,医院信息中心机房如何建设

随着医院信息化的不断向前发展,对医院信息系统越来越依赖,机房是信息系统的心脏,是保证网络核心设备、服务器、存储设备正常、不间断运行的基础。那么,医院信息中心机房如何建设呢? 医院信息中心机房如何建设1、中心机房选址 中心机房的选址应按照相关国家标准综合考虑,应…

MATLAB 暖通,MATLAB在暖通空调课程教学中的应用

神经网络在非线性系统参数辨识中应用 丁晓贵 变风量空调系统应用研究 周向阳; GMSK信号仿真研究 刘业辉 积分分离模糊PID控制在中央空调温湿度控制中的应用 常继彬; 基于MATLAB的灰色系统沉降预测 周卫 基于MATLAB的静定梁内力图的绘制 唐前辉,张友利 MATLAB…

春兰股份是什么

春兰股份是一家中国上市公司&#xff0c;主要从事冷气空调、暖气系统及其配件、管道、控制器、空气净化产品等的研发、生产和销售。