前端主流框架-JQuery

Javascript DOM

1 DOM模型+Document对象

1.1 DOM模型
  1. DOM【Document Object Model】 :文档对象模型。直白的讲就是通过程序解析结构化文档(xml,html)的时候,在内存中生成的包含当前结构化文档中所有内容的一个对象模型。文档中的每一个节点都会生成一个对象,这些对象与对象之间会形成一个层级关系,像一个树形结构,所以称之为DOM树;

  2. DOM模型就是结构化文档在内存中的另外一种表现形式;

1.2 Document对象
  1. 每个载入浏览器的HTML文档都会成为一个Document对象,文档中都是节点(一切皆节点),文档中的标签就是元素节点(Element),标签的内容就是文本节点(Text),标签的属性就是属性节点(Attribute)。Dom操作的的核心就是操作这三种节点,以及元素节点之间层次关系。我们可以使用JavaScript对HTML页面中的所有节点进行访问;

  2. 由于document对象属于window对象,所有BOM包括DOM。获取document对象直接使用window.document获取,而且window.是可以省略的;

  3. 常用方法

    getElementById

1.3 JavaScript事件

事件是可以被JavaScript侦测到的行为,例如单击某一个按钮,我们可以使用js提供的API监听到单击行为,并可以对该行为作出回应;

1.3.1 API-绑定事件的方法
onabort用户终止页面加载。
onchange	用户改变对象的值。
*onclick	用户点击对象。   
*ondblclick	用户双击对象。
*onfocus(和onblur相反)	用户获得焦点。
*onblur	用户离开对象。失去焦点
onkeydown	按下键盘。
onkeypress	按压键盘。
*onkeyup	松开键盘。
*onload	页面完成加载。注释:在 Netscape 中,当页面加载时会发生该事件。
onmousedown	用户按鼠标按钮。
onmouseover	鼠标指针移动到对象上。
onmouseout	鼠标指针移出对象。
onmouseup	用户释放鼠标按钮。
onreset	用户重置表单。
onselect	用户选取页面上的内容。
*onsubmit	用户提交表单。
onunload	用户关闭页面。
1.3.2 事件绑定
  1. JS中绑定事件通常有二种方式:

    1. 元素上直接绑定

    2. 元素.事件名称

1.3.2.1第一种方式
  1. 直接在元素上绑定对应的事件

  2. 缺点:js代码与html代码写在一起了

    function $btn1() {console.debug('我点了');
    }
    <input type="button" id="btn1" value="我点" onclick="$btn1();" />
1.3.2.2 第二种方式【推荐】
  1. 通过Dom对象.事件去绑定

    var $btn2 = document.getElementById("btn2");
    $btn2.onclick = function() {console.debug('我又点了');
    }
    ​
    <input type="button" id="btn2" value="我点2" />

特殊事件onload

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>_03 js 事件处理-onload特殊事件.html</title><script type="text/javascript">//给window绑定一个加载完毕后的事件,也就是mydiv被加载后,才执行的逻辑,就可以获取到了window.onload = function (){var myDiv = document.getElementById("myDiv"); //由于程序是从头到尾解析,到它的时候,mydiv还没有解析到,所以获取操为nullconsole.log(myDiv);/*  解决方案2:等到html窗口被加载完毕后,在来执行我们代码,当什么时候,要做什么事情。其实就是事件机制。写如上代码实现*/}</script>
</head>
<body><div id="myDiv">myDiv</div><!-- <script type="text/javascript">var myDiv = document.getElementById("myDiv"); //由于程序是从头到尾解析,到它的时候,mydiv还没有解析到,所以获取操为nullconsole.log(myDiv);/* 解决方案1:把代码放到标签后面,或者放到body最后面,但是不符合规范,script应该放到head中*/</script>-->
</body>
</html>

 

2 DOM操作

  1. 从上面的介绍得知,Dom操作的核心就是文本操作、属性样式操作、元素操作;

getElementById("id属性值") -- 常用
通过标签元素的ID获取到标签对象
getElementsByName()
通过标签元素的name属性获取到标签对象,返回的是数组
getElementsByTagName()
通过标签名称获取到标签对象,返回的是数组
parentNode:父节点,返回Node
获取指定元素的父节点
document.body:获取body节点  <body>
2 .1 文本操作

实例代码:

<div style="height: 150px;width: 150px;background-color: green" id="d1"></div>
<script type="text/javascript">var div = document.getElementById("d1");div.onmouseover = function(){this.innerHTML = "<span style='color:red'>有敌军潜入</span>";}div.onmouseout = function(){this.innerText = '';}
</script>
2 .2 属性和样式操作
2 .2.1 API
设置属性
setAttribute("type","button") 等价于  node.type="button"
获取属性值
getAttribute("type") 等价于 node.type
删除某属性;
removeAttribute()				
设置样式
node.style.样式 -- 单个样式设置
设置样式名
node.className -- 统一设置样式,多个样式方式,需要结合css代码例如:o.className = "样式类名称";
.样式类名称{
}
常见样式:
node.style.color 可以设置节点的字体颜色
node.style.fontSize 可以设置节点的字体大小
node.style.backgroundColor 用于设置节点的背景颜色
node.style.width ='300px'用于设置节点的宽度
node.style.height ='200px'用于设置节点的高度
node.style.background="url('image/red.png')";
2 .2.2 案例演示

案例:鼠标移动到元素上改变背景颜色,点击改变属性和样式

<style type="text/css">.c1{text-decoration: none;color: black;}
</style>
<body><a href="javascript:;">File</a><a href="javascript:;">Edit</a> <script type="text/javascript">var as = document.getElementsByTagName("a");for(var i = 0 ; i < as.length ; i++){var a = as[i];a.onmouseover = function(){this.style.backgroundColor = 'skyblue';}a.onmouseout = function(){this.style.backgroundColor = 'white';}a.onclick = function(){alert("当前元素的跳转地址为:" + this.href);//this.class = 'c1';//class是关键字this.className = "c1";}}</script>	
</body>
2 .3 元素操作

3 jQuery介绍

1 jQuery的认识

  1. jQuery是继prototype之后一个优秀的开源的JavaScript代码库(或JavaScript框架),它封装JavaScript常用的功能代码;

    js基础语法、函数、面向对象、dom,事件绑定

  2. 我们首先来看看jquery的核心特点:

    (1) 具有独特的链式语法,可以把多个操作写在一行代码里,更加简洁;

    (2) 拥有大量的选择器,不仅有高效灵活的css选择器,并且可对CSS选择器进行扩展;

    (3) 拥有便捷的插件扩展机制和丰富的插件(树形菜单、日期控件、图片切换插件、弹出窗口等);

    在前些年JQuery可以说用相当厉害的,但是后来出现了很多开源插件。所以很不幸,现在他的地位不如vue。

    (4) 这个就厉害了,jQuery兼容各种主流浏览器,包括互联网十大垃圾之一IE6,IE6有各种各样的问题(IE6 浏览器常见兼容问题_ie filter 不兼容-CSDN博客),如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等,jQuery2.0及后续版本将不再支持IE6/7/8浏览器,最新版本是jQuery3.0

  3. jQuery的核心思想:(write less,do more)写得更少,做得更多;

2 和原生js比较

2.1 获取节点

例如:获取input节点:<input id="mytime" value="按钮">

  • 原生js写法:document.getElementById("mytime");

  • jquery写法:$("#mytime") -- #mytime代表id选择器

2.2 Ajax处理

原生js写法:100行

(1) 创建XMLHttpRequest对象

(2) open方法准备请求

(3) 监听属性 onreadystatechange

(4) send方法发送请求

写在最后:JQuery与Javascript,是使用较多的前端技术,包括现在主流的vue,也是基于JavaScript而开发的,笔者之前分享了很多后端框架知识,最近会主力更新前端,后端相关高阶操作文章也会发布。笔者小,中,大厂均有面试经历,坚持每日分享JAVA全栈知识,希望能够和大家共同进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/362433.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

消失的80后都去哪里了

曾经被贴上各种标签的80后&#xff0c;最大的已经44岁&#xff0c;最小的也都35岁了&#xff0c;都已人到中年了。 在80后眼里的弟弟妹妹的90后&#xff0c;已经奔四了&#xff0c;而觉得与80后有代差的95后已是职场主力&#xff0c;而某些80后的孩子00后也已经开始陆续进入职场…

使用Python实现深度学习模型通常涉及以下几个步骤

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把手教你开发炫酷的vbs脚本制作(完善中……&#xff09; 4、牛逼哄哄的 IDEA编程利器技巧(编写中……&#xff09; 5、面经吐血整理的 面试技…

【Vue】集成富文本编辑器

这文章使用的是wangeditor插件&#xff0c;官网地址&#xff1a;wangEditor&#xff0c;这个比较简单 安装 npm i wangeditor --save 使用 <div id"editor"></div>import E from "wangeditor"const editor new E("#editor") e…

猫狗识别—静态图像识别

猫狗识别—静态图像识别 1. 导入必要的库:2. 设置数据目录和模型路径:3. 定义图像转换4. 使用GPU5. 加载没有预训练权重的ResNet模型6. 创建Tkinter窗口:7.定义选择图片的函数:8.定义预测图片的函数:9.退出程序的函数:10.创建按钮:11.运行Tkinter事件循环:12. 完整代码&#xf…

基于YOLOv5+pyqt5的口罩佩戴检测系统(PyQT页面+YOLOv5模型+数据集)

简介 在各种工作环境和公共场所,确保人们正确佩戴口罩对个人防护和公共卫生至关重要,尤其是在医疗设施、制造业车间和拥挤的公共交通中。为了满足这一需求,我们开发了一种基于YOLOv5目标检测模型的口罩佩戴检测系统。本项目不仅实现了高精度的口罩佩戴检测,还设计了一个可…

第四天 怎么又迟到了呀 哎啥时候来准时上个课呀

泛型编程 Traits实现&#xff0c;是什么 泛型编程&#xff08;Generic Programming&#xff09;是一种通过编写与特定类型无关的代码来实现代码复用和抽象的编程范式。 在C中&#xff0c;模板&#xff08;Templates&#xff09;是实现泛型编程的主要手段。 Traits&#xff0…

reactjs18 中使用@reduxjs/toolkit同步异步数据的使用

react18 中使用@reduxjs/toolkit 1.安装依赖包 yarn add @reduxjs/toolkit react-redux2.创建 store 根目录下面创建 store 文件夹,然后创建 index.js 文件。 import {configureStore } from "@reduxjs/toolkit"; import {counterReducer } from "./feature…

CS-隐藏防朔源-数据转发-iptables(Linux自带的防火墙)

免责声明:本文仅做技术交流与学习... 目录 准备环境: 1-iptables转发机设置转发: 2-CS服务器配置iptables服务器的IP 准备环境: 两台外网服务器. --iptables服务器就是做一个中转...封了中转就没了... 1-iptables转发机设置转发: iptables -I INPUT -p tcp -m tcp --dport 8…

Python 基础:使用 unittest 模块进行代码测试

目录 一、测试函数2.1 通过案例2.2 不通过案例2.3 添加新测试 二、测试类2.1 单个测试案例2.2 多个测试案例 三、总结 遇到看不明白的地方&#xff0c;欢迎在评论中留言呐&#xff0c;一起讨论&#xff0c;一起进步&#xff01; 本文参考&#xff1a;《Python编程&#xff1a;…

外贸SEO工具有哪些推荐?

"我们作为一个专业的Google SEO团队&#xff0c;比较推荐一下几个适合外贸SEO的工具。Ahrefs 是一个非常强大的工具&#xff0c;可以帮助你深入分析竞争对手的表现&#xff0c;找到有潜力的关键词&#xff0c;还可以监控你的网站链接状况。另外&#xff0c;SEMrush 也很不…

conda下安装32位版本python

前言&#xff1a;当前主流的系统为64bit系统&#xff0c;conda软件为64bit软件&#xff0c;因此使用conda创建虚拟环境安装python时默认安装的python为64bit版本&#xff0c;但部分研发场景需要调用32bit依赖&#xff0c;只能使用32bit的python&#xff0c;因此需要安装32bit的…

python OpenCV 库中的 cv2.Canny() 函数来对图像进行边缘检测,并显示检测到的边缘特征

import cv2# 加载图像 image cv2.imread(4.png)# 使用 Canny 边缘检测算法提取边缘特征 edges cv2.Canny(image, 100, 200)# 显示边缘特征 cv2.imshow(Edges, edges) cv2.waitKey(0) cv2.destroyAllWindows() 代码解析&#xff1a; 导入 OpenCV 库&#xff1a; import cv2加…

基于Java医院药品交易系统详细设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…

JavaScript中的Date对象,以及常用格式化日期的方法封装

一、Date对象 二、操作Date对象 1、创建Date对象 &#xff08;1&#xff09;常用方法 &#xff08;2&#xff09;使用示例 2、获取日期 &#xff08;1&#xff09;常用方法 &#xff08;2&#xff09;使用示例 3、设置日期 &#xff08;1&#xff09;常用方法 &…

【LeetCode】六、哈希集合Set相关:存在重复元素判断 + MyHashSet设计

文章目录 1、Set集合2、Java中的Set集合3、leetcode217&#xff1a;存在重复元素4、P705&#xff1a;设计哈希集合 1、Set集合 无序&#xff1a;写进去的顺序和遍历读出来的顺序不一样不重复 主要作用&#xff1a;查看是否有重复元素&#xff08;给一个数组&#xff0c;转为…

信息技术课如何禁止学生玩游戏

在信息技术课上禁止学生玩游戏是一个常见的挑战&#xff0c;但可以通过一系列策略和工具来有效地实现。以下是一些建议&#xff1a; 明确课堂规则和纪律&#xff1a; (1)在课程开始时&#xff0c;明确告知学生课堂规则和纪律&#xff0c;包括禁止玩游戏的规定。 (2)强调遵守…

C#——this关键字详情

this关键字 在 C# 中&#xff0c;可以使用 this 关键字来表示当前对象&#xff0c;日常开发中我们可以使用 this 关键字来访问类中的成员属性以及函数。 使用this表示当前类的对象 执行结果 使用 this 关键字串联构造函数 执行结果 使用 this 关键字作为类的索引器 执行结果 …

diffusion model(十八):diffusion model中negative prompt的工作机制

info个人博客主页http://myhz0606.com/article/ncsn 前置阅读&#xff1a; DDPM&#xff1a; http://myhz0606.com/article/ddpm classifier-guided&#xff1a;http://myhz0606.com/article/guided classifier-free guided&#xff1a;http://myhz0606.com/article/classi…

用Roofline模型去分析pytorch和Triton算子

用Roofline模型去分析pytorch和Triton算子 1.参考链接2.测试环境3.安装相关依赖4.锁频5.获取理论算力6.创建测试脚本7.运行测试程序生成Roofline图8.NVIDIA Nsight Compute生成Roofline9.效果图A.nn.LinearB.Triton实现 本文演示了如何用Roofline模型去分析pytorch和Triton算子…

Vue2 - 项目上线后生产环境中去除console.log的输出以及断点的解决方案

前言 当你准备将Vue.js应用程序部署到生产环境时,一个关键的优化步骤是移除代码中的所有 console.log 语句以及断点。在开发阶段,console.log 是一个非常有用的调试工具,但在生产环境中保留它们可能会影响性能和安全性。在本文中,我将向你展示如何通过使用Vue CLI 2来自动…