1.jQuery介绍

jQuery是一个优秀的JavaScript库,以最少的代码实现更多的功能

  • 特点:

    1.强大的选择器的功能  $("selector")
    2.语法简介  $("selector").action()
    3.隐式迭代  $("div").click();   //5个div会自动循环添加点击事件
    4.链式操作  $("").操作1().操作2().操作3()
    5.兼容性好

2.使用

2.1 引入

下载:https://jquery.com/  官网https://www.jquery123.com/ 中文
版本:2.0以下版本  : 使用版本  2.0以上不兼容IE
引入:本地下载好的jQuery文件网上CDN上的jQuery文件
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<!-- 引入下载好的本地jQuery --><!-- <script src="./js/jquery-3.6.0.js"></script> -->
​
<!-- 引入在线的  CDN:内容分发网--><script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script>// 特点1:语法简介  $("选择器").方法();// 特点2:强大选择器功能  所有css中能使用选择器,在jQuery中都可以使用// 特点4:简化html文档操作,动画效果,ajax,事件$(".box").css({"width":100,"height":100,"background":"red"});// 特点3:隐式迭代$(".box").click(function(){// 特点5:链式操作  $().css(操作1)....$(this).css({"background":"teal"}).siblings().css({"background":"red"})
});
</script>

2.2 $的作用

jQuery.js文件   创建了一个jQuery对象,在这个对象上封装了各种方法
window.jQuery = window.$ = jQuery

2.3 jQuery加载方法

// 等文档和资源都加载完成后调用
// window.onload = function () {
//     var oDiv = document.getElementsByTagName("div")[0];
//     oDiv.onclick = function () {
//         alert("点击");
//     }
// }
// window.onload = function () {
//     var oDiv = document.getElementsByTagName("div")[0];
//     oDiv.onmouseover = function () {
//         alert("移入");
//     }
// }
​
​
//jQuery的加载方法
$(document).ready(function () {$("div").click(function () {console.log("点击");})
});
​
$().ready(function () {$("div").mouseover(function () {console.log("移入");})
});
​
$(function(){$("div").mouseout(function () {console.log("移出");})
});
​
/* window.onload  和  $().ready()区别window.onload 等文档和资源加载完成后调用添加多次后面的会覆盖前面的$().ready()等文档加载完成后调用添加多次,会叠加*/

注意window.onload 和 $().ready()区别

2.4 jQuery对象和DOM对象的关系

  • 可以共存

    //jQuery和js 可以共存
    $("div").css({ "width": 200, "height": 200, "background": "gold" });
    var oDiv = document.getElementsByTagName("div")[0];
    oDiv.style.background = "teal";
  • 不能混用

    //不能混用
    //oDiv.css({"width":100});
    //$("div").style.width = "100px";
  • 可以相互转换

    //可以相互转换
    console.log(oDiv);  //DOM对象  标签  元素集合  节点列表
    console.log($("div")); //jQuery对象
    ​
    //DOM对象----》jQuery对象   $(DOM)
    console.log($(oDiv)); //jQuery.fn.init [div]
    ​
    //jQuery对象----》转DOM对象
    console.log($("div")[0]);

3.jQuery选择器

3.1 基本选择器

$(function(){//id:  $("#id")  获取到对应id名的标签$("#middle").css({"background":"pink"});
​//class : $(".class名")  获取到对应class名的标签$(".box").css({"background":"teal"});
​//元素  jQuery中选择器没有优先级,只有先后顺序$("li").css({"background":"orange"});
​//分组  元素,元素$("p,span").css({"color":"green"});
​
​//添加事件$("li").click(function(){console.log(this); //<li></li>  DOM元素     $(this)--转jQuery$(this).css({"background":"teal"});//$().index("selector") : 給当前元素的父元素的所有子元素添加下标console.log($(this).index());;console.log($(this).index("li"));;});
});

3.2 层次选择器

//后代选择器
$("div span").css({"color":"red"});
​
//子代选择器
$("div>span").css({"color":"teal"});
​
//+:相邻兄弟选择器
$("p+span").css({"color":"orange"});
//~: 后面所有的
$("p~span").css({"color":"orange"});

3.3 基本过滤选择器

//:位置
$("li:first").css("background","red");
$("li:last").css("background","red");
$("li:nth-child(2n)").css("background","red");
$("li:nth-child(2n+1)").css("background","pink");
$("li:odd").css("background","red");  //奇数
$("li:even").css("background","pink"); //偶数
​
//:eq(下标) : 从0开始
$("li:eq(2)").css("background","red");
var index = 3;
$("li").eq(index).css("background","pink");
​
//not(选择器)  : 除了
$("li:not(.box)").css("background","pink");
$("li").not(".box").css("background","pink");
​
​
//gt():获取下标大于n   lt():获取下标小于n
$("li:lt(3)").css("background","red");
$("li:gt(2)").css("background","#ccc");

3.4 属性过滤选择器

//E[attr]:匹配有attr属性的E标签
$("div[class]").css("background", "pink");
​
//E[attr=value]:匹配有attr属性并且值位value的E标签
$("div[class=box2]").css("background", "red");
​
//E[attr!=value]:匹配有attr属性并且值不为value的E标签
$("div[class!=box2]").css("background", "teal");
​
//E[attr^=value]:匹配有attr属性并且值以value开头的E标签
$("div[class^=b]").css("background", "teal");
​
//E[attr$=value]:匹配有attr属性并且值以value结尾的E标签
$("div[class$=4]").css("background", "orange");
​
//E[attr*=value]:匹配有attr属性并且值包含value的E标签
$("div[class*=s]").css("background", "deeppink");

3.5 表单选择器

//表单选择器
console.log( $(":input")); //获取的是所有的表单元素   (input button textarea select)
​
// :input的type类型,获取到具体类型的input
console.log($(":text")); //文档框
console.log($(":radio")); //单选框
​
//:checked : 获取选择框被选中的标签
console.log( $(":checkbox:checked"));
console.log( $(":checkbox:checked").length);

注意常用选择器:id,元素,class,分组,后代,子代,eq必须要掌握

4.jQuery操作标签属性

4.1操作标签属性

  • 原生js操作标签属性: 标签.属性名 = “属性值"

  • DOM操作标签属性

    • 设置:标签.setAttribute("属性名","属性值")

    • 获取:标签.getAttribute("属性名")

    • 删除:标签.removeAttribute("属性名")

  • jQuery操作标签属性

    • $().attr() : 操作自定义属性(一般使用这个,自定义和固有都能操作)

      -设置:$().attr("属性名","属性值") (js取值赋值一体)

      -获取:$().attr("属性名")

      -删除:$().removeAttr("属性名")

    • $().prop() :操作固有属性 (input标签的checked属性,就必须使用prop)

      -设置:$().prop("属性名","属性值") (js取值赋值一体)

      -获取:$().prop("属性名")

      -删除:$().removeProp("属性名")

    //-设置:$().attr("属性名","属性值")
    $("div").attr("id","active");
    ​
    //-获取:$().attr("属性名")
    console.log($("div").attr("index")); //1
    ​
    //删除:$().removeAttr("属性名"
    $("div").removeAttr("class");
    ​
    ​
    //区别 如果属性值是true false的情况下,使用prop操作属性
    console.log($("input").attr("checked")); //checked  undefined
    console.log($("input").prop("checked")); //true false
    $("input").prop("checked",false);

4.2 操作class属性

//1.$().addClass("类名") : 追加class
$(this).addClass("active");
​
//2.$().removeClass("类名"):删除对应的class
$(this).removeClass("active");
​
//3.$().hasClass("类名")  : 判断当前元素是否存在某个类名,有返回true,不存在返回false
if($(this).hasClass("active")){ //有$(this).removeClass("active");
}else{ //没有$(this).addClass("active");
}
​
​
//4. $().toggleClass("类名") : 开关,如果当前有这个class就删除,没有就添加
$(this).toggleClass("active");

5.jQuery操作标签内容

  • 原生js

    • 表单元素:标签.value

    • 闭合标签:标签.innerHTML/innerText 操作闭合标签内容,覆盖原有内容,innerHTML识别标签,innerText不识别标签

  • jQuery

    • 表单元素: $().val();

    • 闭合元素: $().html()/text();

//1.设置表单元素:$().val("值")
$("input").val("黄河入海流");
$(window).keydown(function(ev){if(ev.keyCode == 13){//2.获取表单元素内容:$().val()var v = $("input").val();console.log($("input").val());
​//3.获取闭合元素内容 $().html()console.log($("div").html()); //   <p>白日依山尽</p>console.log($("div").text()); //    白日依山尽
​
​//4.设置闭合元素内容 $().html();//  $("div").html(v);  //会覆盖之前的$("div").html($("div").html()+"<p>"+v+"</p>");  //会覆盖之前的//  $("div").text($("div").html()+"<p>"+v+"</p>");  //会覆盖之前的}
})

6.操作标签样式

  • 原生js:标签.style.属性名 = 属性值

  • jQuery:$().css()

 //1.写单个样式 $().css("属性名","属性值")
$("div").css("background","pink");
​
//2.写多个样式 $().css({"属性名":"属性值"})
$("div").css({"width":200,  //属性值数是数字的话, number,string(要加单位)"height":"200px","margin-top":"200", //设置无效"height":"hahahah", //給的不对,不报错,只是不给标签设置,相当于这行代码无效marginLeft:"200px" //对象key可以不加引号,如果是复合属性,使用驼峰标识
})

JQuary(从原生js到jq,就发现jq好简单)相关推荐

  1. 最新原生js轮播图案列

    最新原生js轮播图案列,很简单几个步骤 1.导入html结构,结构大家都会写哦,我就展示一下,图片有些尺寸没有对上,变形很正常的,可以给几个不同颜色的盒子用来实验都可以的. html代码 <di ...

  2. jq实现跳转404跳转,原生js实现跳转404跳转

    2019独角兽企业重金招聘Python工程师标准>>> //jq实现跳转404跳转     <script>      function timeGo() {       ...

  3. 原生js、jq移入移出事件

    在原生js上移入移出共有两种 一种是冒泡的 鼠标移入或移出被选元素及其所有子元素就会触发 element.onmouseover = function(){alert("移入"); ...

  4. 限制字符输入数功能(jQ版和原生JS版)

    限制字符输入数功能(jQ版和原生JS版) 比较常用的限制字符输入数功能(比如热火超天的微博输入框),用jQuery和原生JavaScript分别写了一个.原生JavaScript注释中有区分中英文字符 ...

  5. 原生js获取html元素属性,JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性)...

    JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性) 以下内容: 一.获取元素的属性 二.设置元素的属性 三.删除元素的属性 一.获取元素的属性 1-原生JS 获取属性 .ge ...

  6. 原生JS和JQ实现div的展开与收齐动画

    <!DOCTYPE html> <html> <head><meta charset="UTF-8"><title>展开 ...

  7. animate用法 js原生_原生js实现jq的animate效果.js

    原生js实现jq的animate效果(有一定bug未修复,有时间补上) //原生js实现jq的animate效果 /** *@param obj 执行动画的元素 *@param css JSON数值对 ...

  8. jq ajax请求php原声,原生JS与jQuery对AJAX的实现

    原生JS与jQuery对AJAX的实现 一.定义 W3C里这么解释AJAX: AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). ...

  9. 用原生 JS 实现双向绑定及应用实例

    写在前面: 所谓的双向绑定,无非是从界面的操作能实时反映到数据,数据的变更也能实时展现到界面.angular封装了双向绑定的方法,使双向绑定变得十分简单.但是在有些场景下(比如下面那个场景),不能使用 ...

最新文章

  1. CV 面试问题详解宝典—目标检测篇
  2. Ubuntu终端字体颜色方案
  3. 文本挖掘之文本相似度判定
  4. [LeetCode]二进制求和
  5. WinSock学习笔记
  6. PJzhang:英国通信总部GCHQ开源产品-网络瑞士军刀CyberChef
  7. 【每日一题】7月10日精讲—矩阵取数游戏
  8. powerdesigner 反向工程 oracle,PowerDesigner oracle 反向工程到cdm文件
  9. selinux= 为 disabled_CentOS7关闭防火墙和SELinux
  10. python判断_python的判断
  11. Zernike函数拟合曲面--MATLAB实现
  12. 【英语天天读】Albert Einstein’s Advices
  13. idea创建jsp项目并运行
  14. 《软件质量保证与测试》学习笔记【第一章 软件测试基本概念】
  15. pygame安装时出现的问题以及解决方案记录.
  16. 北京邮电计算机课程表,北邮通信工程本科专业课程表
  17. oracle两个字段减法,Oracle 的加减法函数
  18. 面试官灵魂三问:什么是SOA?什么是微服务?SOA和微服务有什么区别?
  19. ASP.NET MVC --- 身份认证与授权
  20. 微信公众号文字该如何排版?

热门文章

  1. 宝宝去了幼儿园不爱说话怎么办?
  2. 音视频开发系列(7):完成本地摄像头直播推流
  3. android全平台基于ffmpeg解码本地MP4视频推流到RTMP服务器
  4. kprobe 的 3 种使用
  5. 稿子文字左右对称翻转_Matlab/OpenCV (2021-09-06)
  6. windows批量删除指定后缀文件
  7. 计算算法的时间复杂度
  8. LintCode 两个数组的交集
  9. 朴素贝叶斯分类器(离散型)算法实现(一)
  10. tcl 950 android 7,TCL 950测评:商务旗舰手机界的一股清流