一.jQuery的选择器

css 的选择器

css选择器
符号 说明 用法
#id Id选择器

#id{ color:red;}

.class 类选择器 .class{//}
Element 标签选择器 p{//}
* 通配符选择器 配合其他选择器来使用
并集选择器 div,p{}
空格 后代选择器 div span{}
> 子代选择器 div>span{}
+ 紧邻选择器

div+p 

选择div紧挨着的下一个p元素

1.jQuery的基本选择器

作用: 选中标签对应的JQ对象

jQuery的基本选择器
符号 说明 用法
$(“#demo”:) 选择id为demo的第一个元素 $(“#demo”).css(“background”,”red”)
$(“.liItem”) 选择所有类名(样式名)为liTtem的元素

$(“.liItem”).css(“background”,”red”)

$(“div1”) 选择所有标签名字为div的元素 $(“.div”).css(“background”,”red”)
$(“*”) 选择所有元素(少用或配合其他选择器来使用) $(“*”).css(“background”,”red”)
$(“.liItem,div”) 选择多个指定的元素,这个地方是选择出了.liItem元素和div元素 $(“.liItem,div”).css(“background”,”red”)

 

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <div></div>
  9. <div id="box"></div>
  10. <div class="box"></div>
  11. <div class="box"></div>
  12. <div></div>
  13. <script type="text/javascript" src="jquery-3.3.1.js"></script>
  14. <script type="text/javascript">
  15. //入口函数
  16. $(function(){
  17. //三种方式获取jquery对象
  18. var jqBox1 = $("#box");
  19. var jqBox2 = $(".box");
  20. var jqBox3 = $(\'div\');
  21. //操作标签选择器
  22. jqBox3.css(\'width\', \'100\');
  23. jqBox3.css(\'height\', 100);
  24. jqBox3.css(\'background-color\', \'red\');
  25. jqBox3.css(\'margin-top\', 10);
  26. //操作类选择器(隐式迭代,不用一个一个设置)
  27. jqBox2.css("background", "green");
  28. jqBox2.text(\'哈哈哈\')
  29. //操作id选择器
  30. jqBox1.css("background", "yellow");
  31. })
  32. </script>
  33. </body>
  34. </html>

View Code

2.层级选择器

层级选择器
符号 说明 用法
空格 后代选择器   选择所有的后代元素 $(“div span”).css(“background”,”red”)
> 子代选择器   选择所有的子代元素 $(“div>span”).css(“background”,”red”)
+ 紧邻选择器   选择紧挨着的下一个元素 $(“div+span”).css(“background”,”red”)
~ 兄弟选择器   选择后面的所有的兄弟元素 $(“div~span”).css(“background”,”red”)

层级选择器选择了选择符后面那个元素, 比如 : div>p, 是选择>后面的p元素

 

  1. <!DOCTYPE html>
  2. <html>
  3. <head lang="en">
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <script src="jquery-3.3.1.js"></script>
  7. <script>
  8. $(function () {
  9. //获取ul中的li设置为粉色
  10. //后代:儿孙重孙曾孙玄孙....
  11. var jqLi = $("ul li");
  12. jqLi.css("margin", 5);
  13. jqLi.css("background", "pink");
  14. //子代:亲儿子
  15. var jqOtherLi = $("ul>li");
  16. jqOtherLi.css("background", "red");
  17. });
  18. </script>
  19. </head>
  20. <body>
  21. <ul>
  22. <li>111</li>
  23. <li>222</li>
  24. <li>333</li>
  25. <ol>
  26. <li>aaa</li>
  27. <li>bbb</li>
  28. <li>ccc</li>
  29. </ol>
  30. </ul>
  31. </body>
  32. </html>

View Code

3.基本过滤选择器

基本过滤选择器
符号 说明 用法
:eq(index) index是从0开始的下一个数字,选择序号为index的元素.(选择第一个匹配的元素) $(“li:eq(1)”).css(“background”,”red”)
:gt(index) index是从0开始的一个数字,选择序号大于index的元素 $(“li:gt(2)”).css(“background”,”red”)
:lt(index) index是从0开始的一个数字,选择序号小于index的元素 $(“li:lt(2)”).css(“background”,”red”)
:odd 选择所有序号为奇数行的元素 $(“li:odd”).css(“background”,”red”)
:even 选择所有序号为偶数行的元素 $(“li:even”).css(“background”,”red”)
:first 选择匹配第一个元素 $(“li:first”).css(“background”,”red”)
:Iast 选择匹配的最后一个元素 $(“li:last”).css(“background”,”red”)

 

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>基本过滤选择器</title>
  6. </head>
  7. <body>
  8. <ul>
  9. <li>哈哈哈哈,基本过滤选择器</li>
  10. <li>嘿嘿嘿</li>
  11. <li>天王盖地虎</li>
  12. <li>小鸡炖蘑菇</li>
  13. </ul>
  14. </body>
  15. <script src="jquery-3.3.1.js"></script>
  16. <script type="text/javascript">
  17. $(function(){
  18. //获取第一个 :first ,获取最后一个 :last
  19. //奇数
  20. $(\'li:odd\').css(\'color\',\'red\');
  21. //偶数
  22. $(\'li:even\').css(\'color\',\'green\');
  23. //选中索引值为1的元素 *
  24. $(\'li:eq(1)\').css(\'font-size\',\'30px\');
  25. //大于索引值1
  26. $(\'li:gt(1)\').css(\'font-size\',\'50px\');
  27. //小于索引值1
  28. $(\'li:lt(1)\').css(\'font-size\',\'12px\');
  29. })
  30. </script>
  31. </html>

View Code

4.属性选择器

属性选择器
符号 说明 用法
$(“a[href]”) 选择所有包含href属性的元素 $(“a[href]”).css(“background”,”red”)
$(“a[href=\’luffy\’]”) 选择href属性值为luffy的所有a标签 $(“a[href=\’luffy\’]”).css(“background”,”red”)
$(“a[href!=\’baidu\’]”) 选择href属性不等于baidu的所有元素(包括没有href的元素) $(“a[href!=\’baidu\’]”).css(“background”,”red”)
$(“a[href^=\’web\’]”) 选择所有以web开头的元素 $(“a[href^=\’web\’]”).css(“background”,”red”)
$(“a[href$=\’cn\’]”) 选择所有以cn结尾的元素 $(“a[href$=\’cn\’]”).css(“background”,”red”)
$(“a[href*=\’i\’]”) 选择所有包含i这个字符的元素,可以是中英文 $(“a[href*=\’i\’]”).css(“background”,”red”)
$(“a[href][title]=\’我\’]”) 选择所有符号指定属性规则的元素,都符合才会被选中 $(“a[href][title]=\’我\’]”).css(“background”,”red”)

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <div id="box">
  9. <h2 class="title">属性元素器</h2>
  10. <!--<p class="p1">我是一个段落</p>-->
  11. <ul>
  12. <li id="li1">分手应该体面</li>
  13. <li class="what" id="li2">分手应该体面</li>
  14. <li class="what">分手应该体面</li>
  15. <li class="heihei">分手应该体面</li>
  16.  
  17. </ul>
  18.  
  19. <form action="" method="post">
  20.  
  21. <input name="username" type=\'text\' value="1" checked="checked" />
  22. <input name="username1111" type=\'text\' value="1" />
  23. <input name="username2222" type=\'text\' value="1" />
  24. <input name="username3333" type=\'text\' value="1" />
  25. <button class="btn-default">按钮1</button>
  26. <button class="btn-info">按钮1</button>
  27. <button class="btn-success">按钮1</button>
  28. <button class="btn-danger">按钮1</button>
  29.  
  30.  
  31. </form>
  32. </div>
  33. </body>
  34. <script src="jquery-3.2.1.js"></script>
  35. <script type="text/javascript">
  36. $(function(){
  37. //标签名[属性名] 查找所有含有id属性的该标签名的元素
  38. $(\'li[id]\').css(\'color\',\'red\');
  39. //匹配给定的属性是what值得元素
  40. $(\'li[class=what]\').css(\'font-size\',\'30px\');
  41. //[attr!=value] 匹配所有不含有指定的属性,或者属性不等于特定值的元素
  42. $(\'li[class!=what]\').css(\'font-size\',\'50px\');
  43. //匹配给定的属性是以某些值开始的元素
  44. $(\'input[name^=username]\').css(\'background\',\'gray\');
  45. //匹配给定的属性是以某些值结尾的元素
  46. $(\'input[name$=222]\').css(\'background\',\'greenyellow\');
  47. //匹配给定的属性是以包含某些值的元素
  48. $(\'button[class*=btn]\').css(\'background\',\'red\')
  49. })
  50. </script>
  51. </html>

View Code

5.筛选选择器

筛选选择器(通过方法调用)
符号 说明 用法
find(selector) 查找指定元素的所有后代元素(包括子子孙孙)

$(“#i_wrap”).find(“li”).css(“color”,”red”);

选择id为i_wrap的所有后代元素li

children()

查找指定元素的直接子元素(亲儿子元素)

$(“#i_wrap”).children(“ul”).css(“color”,”red”);

选择id为i_wrap的所有子代元素ul

siblings() 查找所有兄弟元素(不包括自己)

$(“#i_liItem”).siblings().css(“color”,”red”);

选择id为i_liItem的所有兄弟元素

parent() 查找父元素(亲的)

$(“#i_liItem”).parent(“ul”).css(“color”,”red”);

选择id为i_liItem的父元素

eq(index) 查找指定元素的第index个元素,index是索引号,从0开始

$(“li”).eq(2).css(“color”,”red”);

选择所有li元素中的第二个

 

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <div id="box">
  9. <p class="p1">
  10. <span>我是第一个span标签</span>
  11. <span>我是第二个span标签</span>
  12. <span>我是第三个span标签</span>
  13. </p>
  14. <button>按钮</button>
  15. </div>
  16. <ul>
  17. <li class="list">2</li>
  18. <li>3</li>
  19. <li>4</li>
  20. <li>5</li>
  21. </ul>
  22. </body>
  23. <script src="jquery-3.2.1.js"></script>
  24. <script type="text/javascript">
  25. //获取第n个元素 数值从0开始
  26. $(\'span\').eq(1).css(\'color\',\'#FF0000\');
  27. //获取第一个元素 :first :last 点语法 :get方法 和set方法
  28. $(\'span\').last().css(\'color\',\'greenyellow\');
  29. $(\'span\').first().css(\'color\',\'greenyellow\');
  30. //查找span标签的父元素(亲的)
  31. $(\'span\').parent(\'.p1\').css({"width":\'200px\',\'height\':\'200px\',"background":\'red\'});
  32. //选择所有的兄弟元素(不包括自己)
  33. $(\'.list\').siblings(\'li\').css(\'color\',\'red\');
  34. //查找所有的后代元素
  35. $(\'div\').find(\'button\').css(\'background\',\'yellow\');
  36. //不写参数代表获取所有子元素。
  37. $(\'ul\').children().css("background", "green");
  38. $(\'ul\').children("li").css("margin-top", 10);
  39. </script>
  40. </html>

View Code

 

二.jQuery的属性操作

jquery的属性操作模块分为四个部分:html属性操作,dom属性操作,类样式操作和值操作

  • html属性操作:是对html文档中的属性进行读取,设置和移除操作。比如attr()、removeAttr()
  • DOM属性操作:对DOM元素的属性进行读取,设置和移除操作。比如prop()、removeProp()
  • 类样式操作:是指对DOM属性className进行添加,移除操作。比如addClass()、removeClass()、toggleClass()
  • 值操作:是对DOM属性value进行读取和设置操作。比如html()、text()、val()

  设置属性值或者 返回被选元素的属性值

  1. //获取值:attr()设置一个属性值的时候 只是获取值
  2. var id = $(\'div\').attr(\'id\')
  3. console.log(id)
  4. var cla = $(\'div\').attr(\'class\')
  5. console.log(cla)
  6. //设置值
  7. //1.设置一个值 设置div的class为box
  8. $(\'div\').attr(\'class\',\'box\')
  9. //2.设置多个值,参数为对象,键值对存储
  10. $(\'div\').attr({name:\'hahaha\',class:\'happy\'})

  移除属性

  1. //删除单个属性
  2. $(\'#box\').removeAttr(\'name\');
  3. $(\'#box\').removeAttr(\'class\');
  4.  
  5. //删除多个属性
  6. $(\'#box\').removeAttr(\'name class\');

  prop() 方法设置或返回被选元素的属性和值。

  当该方法用于返回属性值时,则返回第一个匹配元素的值。

  当该方法用于设置属性值时,则为匹配元素集合设置一个或多个属性/值对。

语法:

  返回属性的值:

  1. $(selector).prop(property)

  设置属性和值:

  1. $(selector).prop(property,value)

  设置多个属性和值:

  1. $(selector).prop({property:value, property:value,...})
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. </head>
  7. <body>
  8. <input type="radio" id=\'test\' name="sex" checked/>
  9. <input type="radio" id=\'test2\' name="sex" />
  10. <button>提交</button>
  11.  
  12. <script type="text/javascript" src="jquery-3.3.1.js"></script>
  13. <script type="text/javascript">
  14. $(function(){
  15. //获取第一个input
  16. var el = $(\'input\').first();
  17. //undefined 因为attr是获取的这个对象属性节点的值,很显然此时没有这个属性节点,自然输出undefined
  18. console.log(el.attr(\'style\'));
  19. // 输出CSSStyleDeclaration对象,对于一个DOM对象,是具有原生的style对象属性的,所以输出了style对象
  20. console.log(el.prop(\'style\'));
  21. console.log(document.getElementById(\'test\').style);
  22.  
  23. $(\'button\').click(function(){
  24. alert(el.prop("checked") ? "男":"女");
  25. })
  26.  
  27.  
  28. })
  29. </script>
  30. </body>
  31. </html>

  1.是有true,false两个属性使用prop();

  2.其他则使用attr();

  为每个匹配的元素添加指定的类名。

  1. $(\'div\').addClass("box");//追加一个类名到原有的类名

  还可以为匹配的元素添加多个类名

  1. $(\'div\').addClass("box box2");//追加多个类名

  从所有匹配的元素中删除全部或者指定的类。

   移除指定的类(一个或多个)

  1. $(\'div\').removeClass(\'box\');

  移除全部的类

  1. $(\'div\').removeClass();

  可以通过添加删除类名,来实现元素的显示隐藏

  1. var tag = false;
  2. $(\'span\').click(function(){
  3. if(tag){
  4. $(\'span\').removeClass(\'active\')
  5. tag=false;
  6. }else{
  7. $(\'span\').addClass(\'active\')
  8. tag=true;
  9. }
  10. })
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style type="text/css">
  7. .active{
  8. color: red;
  9. }
  10. </style>
  11. </head>
  12. <body>
  13. <ul>
  14. <li class="item">张三</li>
  15. <li class="item">李四</li>
  16. <li class="item">王五</li>
  17. </ul>
  18. <script type="text/javascript" src="jquery-3.3.1.js"></script>
  19. <script type="text/javascript">
  20. $(function(){
  21.  
  22. $(\'ul li\').click(function(){
  23. // this指的是当前点击的DOM对象 ,使用$(this)转化jquery对象
  24. $(this).addClass(\'active\').siblings(\'li\').removeClass(\'active\');
  25. })
  26. })
  27. </script>
  28. </body>
  29. </html>

  如果存在(不存在)就删除(添加)一个类。

语法:toggleClass(\’box\’)

  1. $(\'span\').click(function(){
  2. //动态的切换class类名为active
  3. $(this).toggleClass(\'active\')
  4. })

获取值:

语法;

html() 是获取选中标签元素中所有的内容

  1. $(\'#box\').html();

设置值:设置该元素的所有内容 会替换掉 标签中原来的内容

  1. $(\'#box\').html(\'<a href="https://www.baidu.com">百度一下</a>\');

获取值:

   text() 获取匹配元素包含的文本内容

语法:

  1. $(\'#box\').text();

设置值:
  设置该所有的文本内容

  1. $(\'#box\').text(\'<a href="https://www.baidu.com">百度一下</a>\');

注意:值为标签的时候 不会被渲染为标签元素 只会被当做值渲染到浏览器中

获取值:

   val()用于表单控件中获取值,比如input textarea select等等

设置值:

  1. $(\'input\').val(\'设置了表单控件中的值\');

 

版权声明:本文为chenxi67原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/chenxi67/p/9725070.html