- A+
1.index()方法
用于获取当前元素在其兄弟节点中的排序位置,从0开始。
语法:$("selector").index();
该方法一般不单独使用,而是配合对应使用。
2.对应
jQuery中的对应实际指的是“eq()”函数,用于获取集合中指定序号的元素节点,从 0 开始。
语法:$("selector").eq(index);
之所以eq()函数被称为对应,是因为其经常用于实现下面的效果:
// <!-- 点击“box1”中某个“p”元素时,“box2”中【对应】的“p”元素变为红色。 --> $(".box1 p").click(function () { $(".box2 p").eq($(this).index()).css("backgroundColor","red"); });
另外,也经常用于选项卡效果的开发。
3.选项卡案例
<html lang="en"> <head> <meta charset="UTF-8"> <title>选项卡案例</title> <script src="jQueryFiles/jquery-1.8.3.js"></script> <style> *{margin: 0;padding: 0;} .container{ width: 504px;height: 540px;margin: 50px auto; border: 1px solid #cccccc; } .optionBox{ width: 100%;height: 40px;box-shadow: 0 1px 4px gray; } .contentBox{ width: 100%;height: 500px;padding: 20px 10px;position: relative; } .optionBox ul li{ width: 100px;height:40px;line-height: 40px;text-align:center; background-color: darkorange;border-right: 1px dashed #f5f2f0; cursor:pointer;float: left;list-style: none;} .optionBox ul li:last-child{border-right: 0;} .contentBox div{ width: 100%;height: 100%;position: absolute;display: none; } .optionBox ul .selectLi{background-color: aquamarine;} </style> </head> <body> <div class="container"> <div class="optionBox"> <ul> <li class="selectLi">新闻</li> <li>娱乐</li> <li>科技</li> <li>军事</li> <li>体育</li> </ul> </div> <div class="contentBox"> <div>特朗普批准TikTok与甲骨文的交易</div> <div>为什么在娱乐圈,学历与能力好像关系不大?</div> <div>那颗要用在 iPhone 12 上的 A14 芯片,很强吗?</div> <div>岛内接连2日清晨响起炮声?蔡英文高兴得早了!</div> <div>淘汰詹姆斯和哈登!字母哥拿下常规赛MVP</div> </div> </div> <script> var $optionLis=$(".optionBox li"); var $contentDivs=$(".contentBox div"); // 默认加载第一个div块的内容 $contentDivs.eq(0).css("display","block"); // 定义鼠标进入事件 $optionLis.mouseenter(function () { $(this).siblings().removeClass("selectLi"); $(this).addClass("selectLi"); // 通过“index()”和“eq()”函数获取选项标签li对应的内容div var $selectIndex=$(this).index(); var $contentShow=$contentDivs.eq($selectIndex); if ($contentShow.siblings().is(":visible")){ $contentShow.siblings().fadeOut(); } $contentShow.fadeIn(); }); </script> </body> </html>
4.each()方法
用于遍历每个节点,然后执行参数中的回调函数。
注意:
回调函数中如果存在“$(this)”,那么它指的是“当前正在遍历的这个节点”。
语法:$("selector").each(func);
示例:$("div").each(function(){
$(this).children().eq(1).css("backgroundColor","red");
});
<html lang="en"> <head> <meta charset="UTF-8"> <title>Test</title> <script src="jQueryFiles/jquery-1.8.3.js"></script> </head> <body> <table border="1" style="color: orangered;text-align: center" cellspacing="0"> <tr><td>第一列</td><td>第二列</td><td>第三列</td><td>第四列</td><td>第五列</td><td>第六列</td><td>第七列</td></tr> <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> </table> <script> $('tr').css('height','40px'); $('tr:first td').css('width','100px'); $("td").mouseenter(function () { var colIndex=$(this).index(); // 鼠标当前经过的单元格,所对应的每一行的这一列,执行each()中的回调函数。 $("tr").each(function () { $(this).children().eq(colIndex).css("background-color","lightblue"); }) }).mouseleave(function () { var colIndex=$(this).index(); $("tr").each(function () { $(this).children().eq(colIndex).css("background-color","transparent"); }) }); </script> </body> </html>
5.delay()方法
改方法用于设置延迟执行时间,
语法示例:$("selector").delay(timeValue).animate();
参数为延迟的时间,通常配合“animate、fadeIn(fadeOut)、show(hidde)”等动画使用。
<html lang="en"> <head> <meta charset="UTF-8"> <title>blink</title> <script src="jQueryFiles/jquery-1.8.3.js"></script> <style> *{width: 0;padding: 0;} .container{ width: 100%;height: 750px;position: relative; } .container img{ width: 200px;height: 150px;position: absolute; display: none; } button{ width: 100px;height: 30px;font-size: 16px;font-weight: bold; margin: 6px;color: gold;cursor: pointer; background: linear-gradient(120deg,darkred,orangered); } </style> </head> <body> <div class="container"> <button onclick="readyGo()">readyGo</button> <button onclick="stopBlink()">stopBlink</button> <img src="Images/Blink/bawanglong.jpg" alt="WEB前端第四十七课——jQuery框架(五)节点操作index、each、delay等" alt="" title="霸王龙"> <img src="Images/Blink/gesilalong.jpg" alt="WEB前端第四十七课——jQuery框架(五)节点操作index、each、delay等" alt="" title="哥斯拉龙"> <img src="Images/Blink/jialong.jpg" alt="WEB前端第四十七课——jQuery框架(五)节点操作index、each、delay等" alt="" title="甲龙"> <img src="Images/Blink/jianjiaolong.jpg" alt="WEB前端第四十七课——jQuery框架(五)节点操作index、each、delay等" alt="" title="剑角龙"> <img src="Images/Blink/kongshoulong.jpg" alt="WEB前端第四十七课——jQuery框架(五)节点操作index、each、delay等" alt="" title="恐手龙"> <img src="Images/Blink/qiyilong.jpg" alt="WEB前端第四十七课——jQuery框架(五)节点操作index、each、delay等" alt="" title="奇艺龙"> <img src="Images/Blink/sanjiaolong.jpg" alt="WEB前端第四十七课——jQuery框架(五)节点操作index、each、delay等" alt="" title="三角龙"> <img src="Images/Blink/shizuniao.jpg" alt="WEB前端第四十七课——jQuery框架(五)节点操作index、each、delay等" alt="" title="始祖鸟"> </div> <script> var $container=$(".container"); var $imgcolles=$(".container img") $imgcolles.eq(0).css({left:"310px",top:"10px"}); $imgcolles.eq(1).css({left:"60px",top:"210px"}); $imgcolles.eq(2).css({left:"350px",top:"450px"}); $imgcolles.eq(3).css({left:"700px",top:"600px"}); $imgcolles.eq(4).css({left:"580px",top:"240px"}); $imgcolles.eq(5).css({left:"1100px",top:"470px"}); $imgcolles.eq(6).css({left:"910px",top:"50px"}); $imgcolles.eq(7).css({left:"1300px",top:"180px"}); var timer=null; function readyGo() { timer=setInterval(function(){ $imgcolles.each(function (i) { // 设置参数“i”,随着执行序号的增加,延迟时间增加,实现异步闪烁的效果。 $(this).delay(i*600).fadeIn().fadeOut(300).fadeIn(300); }) },5000); } function stopBlink() { clearInterval(timer); $imgcolles.each(function () { $(this).fadeIn(); }) } </script> </body> </html>
6.内部插入
append(),
语法示例:A.append(B);
表示向“A节点内部现有内容之后”追加“B节点”
appendTo(),
语法示例:B.appendTo(A);
表示将“B节点”追加到“A节点内部现有内容之后”
prepend(),
语法示例:A.prepend(B);
表示向“A节点内部现有内容之前”追加“B节点”
prependTo(),
语法示例:B.prepend(A);
表示将“B节点”追加到“A节点内部现有内容之前”
7.外部插入
after(),
语法示例:A.after(B);
表示 在“A节点之后”添加“同级节点B”
before(),
语法示例:A.before(B);
表示 在“A节点之前”添加“同级节点B”
insertAfter(),
语法示例:A.insertAfter(B);
表示 把“A节点”添加到“节点B”之后
insertBefore(),
语法示例:A.insertBefore(B);
表示 把“A节点”添加到“节点B”之前
与前述内部插入方法相比,外部插入方法可以认为是给当前节点添加兄弟节点。
8.改变节点位置
在 jq中操作节点或节点组时,隐含的一个规律是:
通过“$()”方法搜索获得的节点,同一时间在页面中只能在一个位置存在。
也就是说,使用内部插入或外部插入等方法,在操作“$()”搜索的元素时,将改变元素的位置。
语法示例:
<body> <div class="div1" style="width:200px;height:100px;border:1px solid"> <span class="whoseChild">span标签</span> </div> <div class="div2" style="width:200px;height:100px;border:1px solid"></div> <script> // <!-- 点击div2时,span标签将改变为div2的子元素 // 此时div1中不再有span标签!--> $(".div2").click(function () { $(this).append($(".whoseChild")); }); $(".div1").click(function () { $(this).append($(".whoseChild")); }); </script> </body>
9.wrap()方法
给指定元素增加一个父级元素。(开发过程中较少使用)
语法示例:A.wrap(B);
表示给“A”元素增加一个父级元素“B”,即 B包裹 A。
10.empty()和remove()
empty(),用于删除指定节点的内容;
remove(),用于删除指定节点自身。
语法:$("selector") .empty(); //等价于$("selector") .html("");
$("selector") .remove();
11.clone()
相当于 js中的 cloneNode(true)操作(深复制),即克隆的节点在页面中没有自己的位置,
需要通过 append()等操作才能够添加到页面中。
语法:$("selector") .append(B.clone());
<html lang="en"> <head> <meta charset="UTF-8"> <title>Test</title> <script src="jQueryFiles/jquery-1.8.3.js"></script> <style> .leftBox,.rightBox{ width: 120px;height: 270px;margin: 10px;padding: 10px; float: left;border:1px solid gray; } .ulStyle{padding-left:30px;list-style: none;} .leftBox ul li{ margin: 5px 0px;} .btn{width:80px;height: 270px;line-height: 30px; margin-top:10px;padding:10px;float: left;} button{ width: 60px;letter-spacing: 5px;display:block;float: left; } </style> </head> <body> <div class="leftBox"> <ul class="ulStyle"> <li><input type="checkbox">西瓜</li> <li><input type="checkbox">葡萄</li> <li><input type="checkbox">苹果</li> <li><input type="checkbox">萝卜</li> <li><input type="checkbox">土豆</li> <li><input type="checkbox">白菜</li> <li><input type="checkbox">馒头</li> <li><input type="checkbox">米饭</li> <li><input type="checkbox">啤酒</li> </ul> </div> <div class="btn"> <button class="copy">复制</button><br> <button class="move">移动</button><br> <button class="clear">清空</button> </div> <div class="rightBox"><ul></ul></div> <script> $(".copy").click(function () { // 判断“input”的“checked”属性,将已勾选内容【克隆】到rightBox中 $(".rightBox ul").append($(".leftBox input:checked").parent().clone()); // 设置rightBox中生成的li的样式 $(".rightBox ul").addClass("ulStyle"); $(".rightBox ul li").css("margin","5px 0"); // 复制完成后“去除”复选框中的勾选标识,令“checked”属性值等于“false” $(".rightBox input").attr({"checked":false}); $(".leftBox input").attr({"checked":false}); }); $(".move").click(function () { // 判断“input”的“checked”属性,将已勾选内容【移动】到rightBox中 $(".rightBox ul").append($(".leftBox input:checked").parent()).addClass("ulStyle"); $(".rightBox ul li").css("margin","5px 0"); $(".rightBox input").attr({"checked":false}); }); $(".clear").click(function () { // 清空 rightBox中的内容 $(".rightBox").empty(); }); </script> </body> </html>
12.jQuery插件使用
① 引入 jQuery版本文件
② 引入插件的 js文件(以及相应的 css文件)
③ 添加加载的事件
④ 复制代码
素材资料,如 jQuery之家等网络资源
13.jQueryUI使用
① 引入jQuery版本文件
② 引入jQueryUI的样式文件
③ 引入jQueryUI的 js文件
④ 使用jQueryUI的功能(可能需要自己封装函数调用)
素材资料,如 jQuery官网“plugins”等网络资源