jQuery概念、获取元素、操作元素

508 阅读2分钟

1.jQuery概念:

jQuery是一个js类库,类库:其实就是一个JS文件,别人提供的对象(属性和方法):压缩版(正式上线项目)和未压缩的源代码版
目的:简化JS-DOM、事件、ajax
常识题:jQuery有人称呼为js库,而有人称为js框架
jQuery其实是一个库:由4方面组成
1.jQuery.js -库:简化了js   大部分人只知道这一部分
2.jQuery.ui -提供了页面的组件(组成页面一部分的部件)-已经过时
3.jQuery.mobile -移动端开发   -现在更流行uniapp
4.Qunit -测试人员 ,用于测试JavaScript的工具
曾经jQuery是全球最火的一个js库
现在三大框架:Vue、react、angluar
目前市场上流传的库大概有8000+

2.jquery的使用步骤:

 1.引入jquery.js文件
 2.使用jquery的API去获取元素
 3.使用jQuery的API去操作元素

3.jQuery如何获取元素:

1.工厂函数:

  $();或者jQuery();
 作用:
  1、查找元素
    语法:var 元素=$("jquery选择器")  -jquery选择器是基于css选择器,但是比css选择器更加的强大
    jquery选择器不需要任何记忆:https://www.w3school.com.cn/jquery/jquery_ref_selectors.asp
    返回值:使用jquery的工厂函数找到的元素,是一个jQuery对象集合,意味着不能使用以前的DOM方法去操作
  •   1、jq找到的元素的特点:
          1.隐式迭代  -不用循环,直接做操作
          2.具有链式操作  -可以不断的使用。一步接一步做下去
          3.jq元素和dom元素 两者方法不能乱用,自己用自己的
           转换:jq->dom:$("选择器")[i]  -只要加上下标就会变成DOM元素
                                         最好不要对jq加下标,更不要循环,反而将简单复杂化
    
  •   2、将dom->jq:$(dom元素) -有用:e.srcElement得到的都是一个dom元素,要转为jQuery元素才能使用对应的方法    
         为什么一个方法可以实现多个操作
         function $(){
                 arguments -重载:判断传入的实参的不同执行不同的操作
                 }
    

2.通过节点之间的关系:

    1.父:$("xx").parent()
    2.子:$("xx").children()
    3.前一个兄弟:$("xx").prev();
    4.后一个兄弟:$("xx").next();
    5.除了自己的其他兄弟:$("XX").siblings();
 jquery查找元素,返回值:jquery集合,可以直接做操作,切记不要循环

4.操作元素

  • 内容:

    html() -底层就是dominnerHTML  -能够识别标签
    获取:$("xx").html();
    设置:$("XX").html("新内容")text() -底层就是dominnerText  -只能书写纯文本
    获取:$("XX").text();
    设置:$("XX").text("新内容");
    
    val() -底层就是domvalue  -单标签inputselect&option
    获取:$("XX").val();
    设置:$("XX").val("新内容");
    
  • 属性:

    attr() -底层就是domgetAttribute/setAttribute  -自定义属性也可以操作
    获取:$("XX").attr("属性名")
    设置:$("XX").attr("属性名","属性值");
    删除:$("XX").removeAttr("属性名")
    专门提供了操作class的API:
     1.追加class:$("XX").addClass("追加的class值")
     2.删除class:$("xx").removeClass();
              没传参数,清空所有的class
              传递实参,删除你传递的class
     3.切换class:有此class和没有此class之间进行切换
              $("xx").toggleClass("active");  //在有active和没有active之间进行切换
    
  • 样式:

    css() -设置时依然是内联样式(优先级高,不会影响到其他元素),获取时不关注内联/内部/外部样式表,只管当前生效的
    获取:$("XX").css("属性名");
    设置:$("XX").css({
          "属性名":"属性值",
          .....
          });
    
  • 创建&渲染

    创建:var elem=$(`<开始标签 属性名='${属性值}'>${内容}</结束标签>`)
    渲染:父亲.append(elem);  //后面,儿子
        父亲.prepend(elem);  //前面,儿子
        兄弟,after(elem);   //后面,兄弟
        兄弟,before(elem);   //前面,兄弟
         一句话创建并且渲染:父亲.append($`<开始标签 属性名='${属性值}'>${内容}</结束标签>`));
    
  •   删除:$("xx").remove();
    
  •   克隆:$("XX").clone();
    
  •   获取元素下标:$("XX").index();