不能正常引用jQuery-2.2.4.min.js所以代码没生效

jQuery

是一个 JavaScript 函数库。jQuery 库包含以下特性:

HTML 元素选取

HTML 元素操作

CSS 操作

HTML 事件函数

JavaScript 特效和动画

HTML DOM 遍历和修改

AJAX

Utilities

官网: 点击

中文文档: 点击

书写规范

  1. <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
  2. //代码不能写在引用文件这个容器里
  3. <script>
  4. $somecode //$符号就表示jQuery
  5. jQuery.somecode //等同
  6. </script>

PS:由于编辑器的JS编码问题中文在js编码过程中没有使用utf-8.显示乱码.实际代码和注释源码有区别

选择器和筛选器

类似JS有#id(id选择器),element(元素选择器即标签),class(class选择器),组合选择器(selector多种选择器组合),层级选择器,*(选择全部)...

基本选择器

在js基础上稍微修改了一下,是用#代表id, .class代表class,标签直接使用标签名

PS:id选择器,使用任何的元字符(如 !"#$%&'()*+,./:;<=>?@[]^`{|}~)作为名称的文本部分, 它必须被两个反斜杠转义:\。 参见示例。

  1. <div id="testid"></div>
  2. <div class="testclass"></div>
  3. <p></p>
  4. <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous" charset="utf-8"></script>
  5. <script>
  6. $('#testid').text('#testid相当于js: docment.getElementById("testid")')
  7. $('p').text('p相当于js: document.getElementsByTagName("p")')
  8. $('.testclass').text('.testclass相当于js: document.getElementByClassName("testclass")')

组合选择器

类似js定义

  1. <div id="testid1"></div>
  2. <div class="testclass1"></div>
  3. <script>
  4. $('#testid1, .testclass1').text('逗号隔开元素组合选择器')
  5. </script>

层级选择器

和JS一样通过空格隔开选择器表达层级路径

  1. <form>
  2. <p>原始</p>
  3. <div id="test">
  4. <p>原始</p>
  5. </div>
  6. </form>
  7. <p >原始</p>
  8. <script>
  9. $('form #test p').text('层级选中')
  10. </script>

原始

原始

筛选器

first选择匹配到的第一个

  1. <li>list item 1</li>
  2. <ul>
  3. <li>list item 1</li>
  4. <li>list item 2</li>
  5. <li>list item 3</li>
  6. <li>list item 4</li>
  7. <li>list item 5</li>
  8. </ul>
  9. <script>
  10. $('ul li').first().text('first')
  11. </script>
  • list item 1
    • list item 1
    • list item 2
    • list item 3
    • list item 4
    • list item 5

    属性选择器

    attr设置或返回被选元素的属性值。
    1. <div id="testattr">testattr</div>
    2. <script>
    3. $('#testattr').attr('name','test')
    4. </script>

    removeAttr从每一个匹配的元素中删除一个属性
    1. <div id="rmattr" name="test">rmattr</div>
    2. <script>
    3. $('#rmattr').removeAttr('name')
    4. </script>

    html和text

    js中的innerHtml和innerText

    1. <p id="testtext">testtext</p>
    2. <p id="testhtml">testhtml</p>
    3. <script>
    4. $('#testtext').text('changed')
    5. $('#testhtml').html('test<br>html')
    6. </script>

    testtext

    testhtml

    val
    1. <input type="text" id="testval">testval</input>
    2. <script>
    3. //$('input:text').val('hello')
    4. $('#testval').val('world')
    5. </script>

    testval

    CSS
    1. <div id="testcss">testcss</div>
    2. <script>
    3. //$('#testcss').height(20)
    4. //$('#testcss').width(20)
    5. $('#testcss').css
    6. ({"color":"white","background":"blue","height":"80px", "width":"80px"})
    7. </script>
    testcss

    jQuery还有很多选择器.慢慢看文档吧..很简单,把很多JS复杂的查找封装了很多易用方法,包括筛选器,属性也是类似的方法.

    事件和文档处理

    不是专业做前端的话,东西看起来还是有点多,慢慢看吧,都是这么玩的.

    jQuery小例

    1. 菜单切换
    1. <style>
    2. .tab-box{
    3. height: 300px;
    4. width: 300px;
    5. }
    6. .tab-box a {
    7. border-right: 2px;
    8. padding: 8px;
    9. }
    10. .tab-box .box-menu{
    11. line-height: 33px;
    12. background-color: #dddddd;
    13. border: 1px solid #dddddd;
    14. }
    15. .tab-box .box-body{
    16. border: 1px solid;
    17. background-color: white;
    18. }
    19. .hide{
    20. display: none;
    21. }
    22. .current{
    23. background-color: white;
    24. color: black;
    25. border-top:2px solid red;
    26. }
    27. </style>
    28. <div class="tab-box">
    29. <div class="box-menu">
    30. <a menu-val="1" onclick="ChangeMenu(this);" class="current">菜单一</a>
    31. <a menu-val="2" onclick="ChangeMenu(this);">菜单二</a>
    32. <a menu-val="3" onclick="ChangeMenu(this);">菜单三</a>
    33. </div>
    34. <div class="box-body">
    35. <div id="content1">内容一</div>
    36. <div id="content2" class="hide">内容二</div>
    37. <div id="content3" class="hide">内容三</div>
    38. </div>
    39. </div>
    40. <script>
    41. function ChangeMenu(ths) {
    42. $(ths).addClass('current').siblings().removeClass('current');
    43. //找到当前点击的标签,加上选中样式
    44. var contentId = $(ths).attr('menu-val');
    45. //获取当前标签的mene-val
    46. var tmp = '#content' + contentId;
    47. $(tmp).removeClass('hide').siblings().addClass('hide');
    48. //将对应标签menu-val对应的内容标签移除hide属性,给其他没有选中的内容添加hide
    49. //console.log($('.tab-box').html())
    50. }
    51. </script>
    1. .tab-box{
    2. height: 300px;
    3. width: 300px;
    4. }
    5. .tab-box a {
    6. border-right: 2px;
    7. padding: 8px;
    8. }
    9. .tab-box .box-menu{
    10. line-height: 33px;
    11. background-color: #dddddd;
    12. border: 1px solid #dddddd;
    13. }
    14. .tab-box .box-body{
    15. border: 1px solid;
    16. background-color: white;
    17. }
    18. .hide{
    19. display: none;
    20. }
    21. .current{
    22. background-color: white;
    23. color: black;
    24. border-top:2px solid red;
    25. }
    内容一
    内容二
    内容三

    1. 循环each方法使用,全选,反选,取消
    1. <div>
    2. <input type="button" value="全选" onclick="SelectAll();" />
    3. <input type="button" value="反选" onclick="ReverseAll();" />
    4. <input type="button" value="取消" onclick="ClearAll();" />
    5. </div>
    6. <div>
    7. <table border="1">
    8. <tr>
    9. <td><input type="checkbox"></td>
    10. <td>123</td>
    11. <td>123</td>
    12. </tr>
    13. <tr>
    14. <td><input type="checkbox"></td>
    15. <td>123</td>
    16. <td>123</td>
    17. </tr>
    18. <tr>
    19. <td><input type="checkbox"></td>
    20. <td>123</td>
    21. <td>123</td>
    22. </tr>
    23. </table>
    24. </div>
    25. <script>
    26. function SelectAll() {
    27. //全选: 获得$('table :checkbox')全部将checked属性改为true
    28. $('table :checkbox').prop('checked', true);
    29. }
    30. function ClearAll() {
    31. //取消: 获得$('table :checkbox')全部将checked属性改为false
    32. $('table :checkbox').prop('checked', false);
    33. }
    34. function ReverseAll() {
    35. // $('table :checkbox')获得所有table :checkbox列表
    36. //jQuery封装了for循环each(callback),这里会把每个元素传入each(里的function(){}执行)
    37. $('table :checkbox').each(function () {
    38. var isChecked = $(this).prop('checked');
    39. //$this在循环内获得当前元素
    40. if(isChecked){
    41. $(this).prop('checked', false);
    42. }else {
    43. $(this).prop('checked', true);
    44. }
    45. })
    46. //JS原本写法
    47. // var checkboxList = $('table :checkbox');
    48. // for(var i in checkboxList){
    49. // var ele = checkboxList[i];
    50. // var isChecked = $(ele).prop('checked');
    51. // if(isChecked){
    52. // $(ele).prop('checked', false)
    53. // }else {
    54. // $(ele).prop('checked', true)
    55. // }
    56. // }
    57. }
    58. </script>
    1. <input type="button" value="全选" onclick="SelectAll();" />
    2. <input type="button" value="反选" onclick="ReverseAll();" />
    3. <input type="button" value="取消" onclick="ClearAll();" />