# JQ 对象和 JS 对象对比
JQ 和 JS 的方法可以混用吗?不可以混用
# JQ 对象:
用 JQ 选择器选择的元素形成的对象
1 2 3 4 5
   |  var $div=$("div"); $div.style.color="red"; $div.setAttribute();
 
 
  | 
 
# JS 对象:
用 JS 选择器选择的元素(节点)
1 2 3 4
   |  var box=document.getElementById("box"); box.css("color","red");
 
 
  | 
 
# 如何混用
1. 如果 JS 对象要使用 JQ 的方法,则需要将 JS 对象转为 JQ 对象才可以:(需求较多,可能会较常使用,即 JS 转 JQ)。操作:
1 2 3 4 5
   | 
  $(box); $(box).css("color","red")
 
 
  | 
 
2.JQ 转为 JS 对象(需求特少,面试)。步骤:
1 2 3 4 5 6 7 8 9
   |  var $div=$("div"); $div.style.color="red"
  $div[0];
  $div.get(0) $div[0]style.color="red"
 
 
  | 
 
# JQ 的选择器
约等于 CSS 的选择器。分两部分:1、CSS3、CSS2 选择器;2、JQ 特有选择器
# jquery 基本选择器
- id 选择器  	$("#id") 			选择了 id 名为 id 的元素(单个)
 
- 类选择器  	$(".class")			选择了所有 class 名为 class 的所有元素(集合)
 
- 标签选择器  $(“p”)				选择了所有标签名为 p 的所有元素(集合)
 
- 通配选择器	$("*")				选择了所有的元素(集合)
 
- 并列选择器	$("#id1,#id2")  	选择了 id 名为 id1 和 id2 的 2 个元素 (集合)
 
- 类选择器  	$(“p.class”)		选择了类名为 class 的所有 p 元素(集合)
 
# 关系选择器
- 
空格   $(“div p”)				后代选择器选择所有的后代元素(集合)
 
- 
> 	   $(“div>p”)				子代选择器选择所有的子代元素(集合)
 
- 
+        $(“div+p”)				相邻选择器选择紧挨着的下一个元素
 
- 
~ 	   $(“div~p”)				兄弟选择器,选择后面的所有的 p 元素
 
# 过滤选择器
- :eq(index)  ("div").eq(0)选择第一个匹配的div元素,也可这样写:(“div:eq(0)”)。
 
- :gt(index)	("div").gt(2)选择序号大于2的元素,也可这样写:(“div:gt(2)”)
 
- :lt(index)  ("div").lt(2)选择序号小于2的元素,也可这样写:(“div:lt(2)”)
 
- :not (selector)  $(“div:not (class)”)		选择不为 class 的 div 元素
 
- :odd		$(“tr:odd”)			所有奇数 
 元素
 
- :even		$(“tr:even”)		所有偶数 
 元素
 
- :first 		$(“p:first”) 		第一个 
 元素
 
- :last 		$(“p:last”) 		最后一个 
 元素
 
- :nth-child (index)  index 从 1 开始 ,nth 表示第几个
 
# 属性选择器
- [attribute] 		$("[href]") 		所有带有 href 属性的元素 
 
- [attribute=value] 	$("[href=’#’]") 	所有 href 属性的值等于 "#" 的元素
 
- [attribute!=value]  $("[href!=’#’]") 	所有 href 属性的值不等于 "#" 的元素
 
- [attribute$=value]  ("[href=’.jpg’]") 所有 href 属性的值包含以".jpg" 结尾的元素
 
- [attribute^=value]  $("[class^=‘li’]")  所有 class 属性的值包含以 "li" 开头的
 
- [attribute*=value]  $("[class*=‘li’]")  所有 class 属性的值包含 "li" 的元素
 
# 属性状态选择器
- :enabled 	$(":enabled") 	所有激活的 input 元素
 
- :disabled 	$(":disabled") 	所有禁用的 input 元素
 
- :selected 	$(":selected") 	所有被选取的 input 元素
 
- :checked 	$(":checked") 	所有被选中的 input 元素
 
# 表单选择器 (JQ 特有)
- :input		$(":input")		选取所有的 input、textarea、button、select 元素
 
- :text		$(":text")		选取所有的单行文本框
 
- :password	$(":password")	选取所有的密码框
 
- :radio		$(":radio")		选取所有的单选框
 
- :checkbox	$(":checkbox")	选取所有的多选框
 
- :submit		$(":submit")	选取所有的提交按钮
 
- :image		$(":image")		选取所有的图像按钮
 
- :reset		$(":reset")		选取所有的重置按钮
 
- :button		$(":button")	选取所有的按钮
 
- :file		$(":file")		选取所有的上传域
 
- :hidden		$(":hidden")	选取所有的不可见元素
 
- :focus		$(":focus")		选取当前获取焦点的元素
 
# jQuery 特有选择器
- $(“div”).filter (".box")  选取含有指定选择器的 div 元素,也就是选择的是 div,在 div 范围内包含了指定的选择器的该 div 都能被选择 (过滤自己)
 
- $(“div”).find (".box")  选取在 div 元素内,所有包含了指定的选择器(".box")的元素都能被选择(通过父级找子元素时使用,等价于后代选择器)
 
- $(“div:contains (‘text’)”). 选取包含指定文本的元素
 
- $(“div”).has (选择器)  选取含有指定选择器的 div 元素,选的也是 div, 而不是 “选择器”
 
- $(“div:even”)  偶数行
 
- $(“div:odd”)  奇数行
 
- $("div).first()   ==  $(“div:first”)
 
- $("div).last()    ==  $(“div:last”)
 
- $("div).eq (索引)  ==  $(“div:eq (2)”)
 
- $("div).gt (索引)  ==  $(“div:gt (2)”)
 
- $("div).lt (索引)  ==  $(“div:lt (2)”)
 
# JQ 选择器实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
   |  <!DOCTYPE html     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
  <head>     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />     <title></title>     <style>         *{ margin:0; padding:0;}         body {font-size:12px;text-align:center;}         a { color:#04D; text-decoration:none;}         a:hover { color:#F50; text-decoration:underline;}         .SubCategoryBox {width:600px; margin:0 auto; text-align:center;margin-top:40px;}         .SubCategoryBox ul { list-style:none;}         .SubCategoryBox ul li { display:block; float:left; width:200px; line-height:20px;}         .showmore { clear:both; text-align:center;padding-top:10px;}         .showmore a { display:block; width:120px; margin:0 auto; line-height:24px; border:1px solid #AAA;}         .showmore a span { padding-left:15px; background:url(../img/down.gif) no-repeat 0 0;}         .showmore a.on span { padding-left:15px; background:url(../img/up.gif) no-repeat 0 0;}         .promoted a { color:#F50;}     </style>     <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>          <script type="text/javascript">         $(function () {             /*             作业要求:             1、默认显示前6个产品+最后一个其他品牌相机(图1)             2、当点击“显示全部品牌”时,展开所有品牌,并对佳能,尼康,奥林巴斯高亮品牌高亮显示,然后按钮文字要变成:精简显示品牌,同时向下箭头变成向上箭头图标(图2)             3、再一次点击该按钮时,恢复默认显示(图1)              */             /*作业提示:                        让元素显示   $(元素).show();                        让元素隐藏   $(元素).hide();                        改变元素的就文本:                $(元素).text('新的文本')             */         });     </script>     <style type="text/css">         .cur a {             color: orange         }     </style>     <script src="jquery-3.5.1.min.js"></script>     <script type="text/javascript">         $(function () {             var $li=$("ul li:gt(5):not(:last)");             $li.hide();             $(".showmore").click(function () {                 if ($li.is(":hidden")) {                     $li.show();                     $(".showmore a span").text("精简显示品牌");                     $(".showmore a").addClass("on");                     $("ul li").first().addClass("promoted");                     $("ul li:eq(3)").addClass("promoted");                     $("ul li:eq(10)").addClass("promoted");                 }                 else {                     $li.hide();                     $(".showmore a span").text("显示全部品牌");                     $(".showmore a").removeClass("on");                     $("ul li:first").removeClass("promoted");                     $("ul li:eq(3)").removeClass("promoted");                     $("ul li:eq(10)").removeClass("promoted");                 }             })         })     </script> </head>
  <body>     <div class="SubCategoryBox">         <ul>             <li><a href="#">佳能</a><i>(30440) </i></li>             <li><a href="#">索尼</a><i>(27220) </i></li>             <li><a href="#">三星</a><i>(20808) </i></li>             <li><a href="#">尼康</a><i>(17821) </i></li>             <li><a href="#">松下</a><i>(12289) </i></li>             <li><a href="#">卡西欧</a><i>(8242) </i></li>             <li><a href="#">富士</a><i>(14894) </i></li>             <li><a href="#">柯达</a><i>(9520) </i></li>             <li><a href="#">宾得</a><i>(2195) </i></li>             <li><a href="#">理光</a><i>(4114) </i></li>             <li><a href="#">奥林巴斯</a><i>(12205) </i></li>             <li><a href="#">明基</a><i>(1466) </i></li>             <li><a href="#">爱国者</a><i>(3091) </i></li>             <li><a href="#">其它品牌相机</a><i>(7275) </i></li>         </ul>         <div class="showmore">             <a href="#"><span>显示全部品牌</span></a>         </div>     </div> </body>
  </html>
 
 
  |