zoukankan      html  css  js  c++  java
  • 循序渐进Python3(十一) --4--  web之jQuery

     

     jQuery

            jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。
           jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。
           简言之,jQuery 是一个 JavaScript 库,jQuery 极大地简化了 JavaScript 编程。
     

    一、选择器

    (1)id选择器

    定义和用法

    # 选取带有唯一的指定 id 的元素。

    id 引用 HTML 元素的 id 属性。

    相同的 id 值只能在文档中使用一次。

    语法
    $('#id')
    实例
    选取 id="choose" 的 元素:
    $('#choose')

    注释:不要使用数字开头的 ID 名称!在某些浏览器中可能出问题。

    (2)class选择器

    定义和用法. 选择器选取带有指定 class 的元素。 class 引用 HTML 元素的 class 属性。 与 id 选择器不同,class 选择器常用于多个元素。 这样就可以为带有相同 class 的任何 HTML 元素设置特定的样式。
    语法 $('.class')
    实例 选取 class="intro" 的元素: $('.intro')
    注释:
    .class.class  
    $(".intro.demo") 所有 class="intro" 且 class="demo" 的元素
     

    (3)标签选择器

    定义和用法 element 选择器选取带有指定标签名的元素。 标签名引用 HTML 标签的 < 与 > 之间的文本。 语法 $(tagname) 实例 选择所有的 <p> 元素: $('p')

    (4)属性选择器

    定义和用法 [attribute] 选择每个带有指定属性的元素。 可以选取带有任何属性的元素(对于指定的属性没有限制)。 语法 $("[attribute]") 实例 $("[name]")
    $("[name]").addClass('ba');
    $("[ceshi='123']");   --找出属性名称ceshi等于123的标签

    (5)其他

     二、筛选

    三、属性操作方法

    下面列出的这些方法获得或设置元素的 DOM 属性。
     

    四、文档操作方法

    实例 检查第一个 <p> 元素是否包含 "intro" 类: $("button").click(function(){ alert($("p:first").hasClass("intro")); });

     五、 CSS 操作函数

    下面列出的这些方法设置或返回元素的 CSS 相关属性。

    实例 设置 <p> 元素的颜色为红色: $(".btn1").click(function(){ $("p").css("color","red"); }); 定义和用法 css() 方法返回或设置匹配的元素的一个或多个样式属性。 返回 CSS 属性值。 返回第一个匹配元素的 CSS 属性值。 注释:当用于返回一个值时,不支持简写的 CSS 属性(比如 "background" 和 "border")。 $(selector).css(name) 参数 描述 name 必需。规定 CSS 属性的名称。该参数可包含任何 CSS 属性。比如 "color"。 实例 取得第一个段落的 color 样式属性的值: $("p").css("color"); 设置 CSS 属性 设置所有匹配元素的指定 CSS 属性。 $(selector).css(name,value)参数 描述 name 必需。规定 CSS 属性的名称。该参数可包含任何 CSS 属性,比如 "color"。 value 可选。规定 CSS 属性的值。该参数可包含任何 CSS 属性值,比如 "red"。 如果设置了空字符串值,则从元素中删除指定属性。 实例 将所有段落的颜色设为红色: $("p").css("color","red"); 使用函数来设置 CSS 属性 设置所有匹配的元素中样式属性的值。 此函数返回要设置的属性值。接受两个参数,index 为元素在对象集合中的索引位置,value是原先的属性值。 $(selector).css(name,function(index,value))参数 描述 name 必需。规定 CSS 属性的名称。该参数可包含任何 CSS 属性,比如 "color"。 function(index,value) 规定返回 CSS 属性新值的函数。 index - 可选。接受选择器的 index 位置 oldvalue - 可选。接受 CSS 属性的当前值。 实例 1 将所有段落的颜色设为红色: $("button").click(function(){ $("p").css("color",function(){return "red";}); }); 实例 2 逐渐增加 div 的宽度: $("div").click(function() { $(this).css( "width", function(index, value) {return parseFloat(value) * 1.2;} ); }); 设置多个 CSS 属性/值对 $(selector).css({property:value, property:value, ...})把“名/值对”对象设置为所有匹配元素的样式属性。 这是一种在所有匹配的元素上设置大量样式属性的最佳方式。 参数 描述 {property:value} 必需。规定要设置为样式属性的“名称/值对”对象。 该参数可包含若干对 CSS 属性名称/值。
    比如: {"color":"red","font-weight":"bold"}
    实例: $("p").css({ "color":"white", "background-color":"#98bf21", "font-family":"Arial", "font-size":"20px", "padding":"5px" });

    六、事件方法

    事件方法会触发匹配元素的事件,或将函数绑定到所有匹配元素的某个事件。

     

     

    绑定事件:
     方法一:
    $('.item .title').click(function(){
    // this,$(this)
    $(this).next().removeClass('hide');
    $(this).parent().siblings().find('.body').addClass('hide');
    });    
     方法二:
     
    $('.item .title').
    bind
    ('click', function () {
    $(this).next().removeClass('hide');
    $(this).parent().siblings().find('.body').addClass('hide');
    })
     方法三:
    $(function(){
    // 当文档树加载完毕后,自动执行
    $('.item .title').click(function(){
    // this,$(this)
    $(this).next().removeClass('hide');
    $(this).parent().siblings().find('.body').addClass('hide');
    });
    });
    推荐第三种方法。
    实用例子:
    左侧菜单:(查找上下级,属性操作)
    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <metacharset='utf-8'>
    5. <title>test16</title>
    6. <style>
    7. body{
    8. margin:0;
    9. }
    10. .menu{
    11. width:200px;
    12. height:800px;
    13. background-color:#dddddd;
    14. overflow:auto;
    15. }
    16. .ba{
    17. background-color: red;
    18. }
    19. .hide{
    20. display: none;
    21. }
    22. </style>
    23. </head>
    24. <body>
    25. <divclass="menu">
    26. <divclass="item">
    27. <divclass="title ba"onclick="ShowMenu(this)">菜单一</div>
    28. <divclass="content">
    29. <p>第一章</p>
    30. <p>第二章</p>
    31. <p>第三章</p>
    32. <p>第四章</p>
    33. </div>
    34. </div>
    35. <divclass="item">
    36. <divclass="title ba"onclick="ShowMenu(this)">菜单二</div>
    37. <divclass="content hide">
    38. <p>第一章</p>
    39. <p>第二章</p>
    40. <p>第三章</p>
    41. <p>第四章</p>
    42. </div>
    43. </div>
    44. <divclass="item">
    45. <divclass="title ba"onclick="ShowMenu(this)">菜单三</div>
    46. <divclass="content hide">
    47. <p>第一章</p>
    48. <p>第二章</p>
    49. <p>第三章</p>
    50. <p>第四章</p>
    51. </div>
    52. </div>
    53. </div>
    54. <scriptsrc="jquery-1.12.4.js"></script>
    55. <script>
    56. functionShowMenu(ths){
    57. // console.log(ths); // Dom中的标签对象
    58. //$(ths) // Dom标签对象转换成jQuery标签对象(便利)
    59. //$(ths)[0] // jQuery标签对象转换成Dom标签对象
    60. $(ths).next().removeClass('hide');
    61. $(ths).parent().siblings().find('.content').addClass('hide');
    62. }
    63. </script>
    64. </body>
    65. </html>
    全选取消反选(属性的选择和设置值):
    1. <!DOCTYPE html>
    2. <htmllang="en">
    3. <head>
    4. <metacharset="UTF-8">
    5. <title>test</title>
    6. <style>
    7. th{
    8. width:48px;
    9. }
    10. td{
    11. text-align: center;
    12. }
    13. </style>
    14. </head>
    15. <body>
    16. <inputtype="button"value="全选"onclick="ChoseAll();">
    17. <inputtype="button"value="取消"onclick="CancelAll();">
    18. <inputtype="button"value="反选"onclick="ReverseAll();">
    19. <tableborder="1">
    20. <thead>
    21. <tr>
    22. <th>序号</th>
    23. <th>姓名</th>
    24. <th>分数</th>
    25. </tr>
    26. </thead>
    27. <tbodyid="l1">
    28. <tr>
    29. <td><inputtype="checkbox"/></td>
    30. <td>11</td>
    31. <td>12</td>
    32. </tr>
    33. <tr>
    34. <td><inputtype="checkbox"/></td>
    35. <td>21</td>
    36. <td>89</td>
    37. </tr>
    38. <tr>
    39. <td><inputtype="checkbox"/></td>
    40. <td>31</td>
    41. <td>99</td>
    42. </tr>
    43. </tbody>
    44. </table>
    45. <scriptsrc="jquery-1.12.4.js"></script>
    46. <script>
    47. functionChoseAll(){
    48. // prop()函数用于设置或返回当前jQuery对象所匹配的元素的属性值。
    49. $('#l1 input[type="checkbox"]').prop('checked',true);
    50. }
    51. functionCancelAll(){
    52. $('#l1 input[type="checkbox"]').prop('checked',false);
    53. }
    54. functionReverseAll(){
    55. // each()函数用于循环当前jQuery对象所匹配的元素
    56. $('#l1 input[type="checkbox"]').each(function(i){
    57. if($(this).prop('checked')){
    58. $(this).prop('checked',false);
    59. }
    60. else{
    61. $(this).prop('checked',true);
    62. }
    63. })
    64. }
    65. </script>
    66. </body>
    67. </html>
    增减文本框:
    1. <!DOCTYPE html>
    2. <htmllang="en">
    3. <head>
    4. <metacharset="UTF-8">
    5. <title>test</title>
    6. </head>
    7. <body>
    8. <div>
    9. <p>
    10. <aonclick="Add(this);">+</a>
    11. <inputtype="text"/>
    12. </p>
    13. </div>
    14. <scriptsrc="jquery-1.12.4.js"></script>
    15. <script>
    16. functionAdd(ths){
    17. var ca = $(ths).parent().clone();
    18. ca.find('a').text('-');
    19. ca.find('a').attr('onclick','Remove(this);');
    20. $(ths).parent().parent().append(ca);
    21. }
    22. functionRemove(ths){
    23. $(ths).parent().remove();
    24. }
    25. </script>
    26. </body>
    27. </html>
    文本操作和搜索条件:
    1. <!DOCTYPE html>
    2. <htmllang="en">
    3. <head>
    4. <metacharset="UTF-8">
    5. <title></title>
    6. </head>
    7. <body>
    8. <inputtype="button"onclick="Add();"/>
    9. <ul>
    10. <li>123</li>
    11. <li>456</li>
    12. <li>789</li>
    13. </ul>
    14. <scriptsrc="jquery-1.12.4.js"></script>
    15. <script>
    16. $(function(){
    17. /* 可直接通过jQuery绑定click事件
    18. $('li').click(function () {
    19. alert($(this).text());
    20. });
    21. */
    22. /*delegate()函数用于为指定元素的一个或多个事件绑定事件处理函数。
    23. 此外,你还可以额外传递给事件处理函数一些所需的数据。
    24. 即使是执行delegate()函数之后新添加的元素,只要它符合条件,
    25. 绑定的事件处理函数仍然对其有效。
    26. 此外,该函数可以为同一元素、同一事件类型绑定多个事件处理函数。
    27. 触发事件时,jQuery会按照绑定的先后顺序依次执行绑定的事件处理函数。
    28. 要删除通过delegate()绑定的事件,请使用undelegate()函数。
    29. 从jQuery 1.7开始,请优先使用事件函数on()替代该函数。
    30. 该函数属于jQuery对象(实例)。*/
    31. $("ul").delegate("li","click",function(){
    32. alert($(this).text());
    33. });
    34. });
    35. functionAdd(){
    36. var tag = document.createElement('li');
    37. tag.innerText ='666';
    38. $('ul').append(tag);
    39. }
    40. </script>
    41. </body>
    42. </html>
     





    附件列表

  • 相关阅读:
    JAVA :: MVC
    顺序栈创建
    editplus 配置工具集
    链表之创建
    13.1.22:线性表之单链表
    Web 多线程作业
    给 Mac OS X Lion 刻一张安装光盘
    kubernetes组件之api 安装
    kubeadm 之k8s 多master 部署
    kubernetes集群之部署kubescheduler组件
  • 原文地址:https://www.cnblogs.com/wumingxiaoyao/p/6074291.html
Copyright © 2011-2022 走看看