JavaScript与jQuery基础入门到放弃
JavaScript与jQuery基础入门到放弃
引言:
- BOM 操作
- DOM 操作
- jQuery 类库
BOM 操作
BOM (Browser Object Model) 指浏览器对象模型,使 JavaScript有能力与浏览器交互
window.open() // 打开浏览器空页面
window.open('http://www.baidu.com', '','width=800px, left=200px') // 打开指定网站的页面,并指定打开大小
window.close() // 关闭当前浏览器窗口
navigator.userAgent // 标识自己是一个浏览器
history.forward() // 前进一页
history.back() // 后退一页
window.location.href // 获取当前网页所在网页地址,可以加赋值符号和网址跳转
window.locaton.reload() // 刷新当前页面
alert('警告️') // 警告框
confirm('提示是否确认') // 确认框
Prompt('你想输入什么') // 提示框
// 计时器相关操作(重要)
let t = setTimeout(showMsg, 3000) // 3000毫秒后执行函数
clearTimeout(t) // 取消任务
s = setInterval(func, 3000) // 每隔3000毫秒执行一次
clearInterval(s) // 取消任务
DOM 操作
DOM (Document Object Model) 指文档对象模型,通过它可以访问HTML文档的所有元素
既然DOM操作时通过js代码来操作标签,所以需要先学习如何查找标签之后才能给标签绑定一些js代码(DOM 操作)
document.getElementById('d1') // 通过标签id查找返回便签对象本身
document.getElementsByClassName('text') // 通过标签的class名字查找,结果是数组,里面含有多个标签对象可以使用数组取值
document.getElementsByTagName('p') // 通过标签查找,返回数组,可以使用索引取值
// 基于当前查找的标签查找 document.getElementById('div1')
document.getElementById('div1').parentElement // 父节点的标签元素
document.getElementByid('div1').children // 所有的子标签
document.getElementByid('div1').firstElementChild // 第一个子标签元素
document.getElementByid('div1').lastElementChild // 最后一个子标签元素
document.getElementByid('div1').nextElementSibling // 下一个兄弟标签元素
document.getElementByid('div1').previousElementSibling // 上一个兄弟标签元素
操作节点
// 创建一个a标签
let aEle = document.createElement('a')
// js代码对标签属性做增删改查
// .href 的方式只能添加默认属性
aEle.href = 'http://www.baidu.com'
// setAttribute()兼容默认属性和自定义属性
aEle.setAttribute('age',18)
// getAttribute()查看属性
aEle.getAttribute('age')
// removeAttribute() 移除属性
aEle.removeAttribute('age')
// js代码操作标签文本
aEle.innerText = '这是a标签的文本'
// js代码查找div标签并将a是追加到div内部
let divEle = document.getElementsByTagName('div')[0]
divEle.appendChild(aEle)
.innerText 获取标签内部所有的文本内容
divEle.innerText = '不错' 替换/设置标签内部的文本(不识别标签语法)
.innerHTML 获取标签内部所有的标签包含文本
divEle.innerHTML = '<h1>很不错</h1>' 替换/设置标签内部的文本(识别标签语法)
获取值操作
使用.value的方式可以获取用户输入或者选择的值
1. 针对用户输入的和用户选择的标签
标签对象.value
2. 针对用户上传的文件数据
标签对象.files fileList [文件对象,文件对象,文件对象]
标签对象.files[0] 文件对象
var iEle = document.getElementById("i1");
console.log(iEle.value);
var sEle = document.getElementById("s1");
console.log(sEle.value);
var tEle = document.getElementById("t1");
console.log(tEle.value);
class与css操作
1. js操作标签css样式
标签对象.style.属性名(下划线没有 变成驼峰体)
2. js操作标签css属性
标签对象.classList.add()
标签对象.classList.contains()
标签对象.classList.remove()
标签对象.classList.toggle()
事件
事件可以理解为通过js代码给html标签绑定一些自定义的功能
常见事件
onclick 当用户点击某个对象时调用的事件句柄
onfocus 元素获得焦点
onblur 元素失去焦点
onchange 域的内容被改变
绑定事件的多种方式
<!--绑定事件的方式1-->
<button onclick="showMsg()">点击</button>
<!--绑定事件的方式2-->
<input type="button" value="go" id="d1">
<script>
function showMsg() {
let msg = prompt('确定这样吗?')
console.log(msg)
}
let inputEle = document.getElementById('d1')
inputEle.onclick = function () {
alert('谁点我!')
}
</script>
<!--
事件函数中的this关键字
this指代的就是当前被操作的标签对象本身
如果事件函数内有多成嵌套那么最好开始就使用变量存储防止后续变化
-->
// 输入框焦点和失去焦点案例
<input type="text" value="游戏机" id="d1">
<script>
let inputEle = document.getElementById('d1')
// onfocus 焦点
inputEle.onfocus = function () {
this.value = ''
}
// onblur 失去焦点
inputEle.onblur = function () {
this.value = '再见'
}
</script>
// 登录框提示信息焦点和失去焦点
<p>username:
<input type="text" id="d1">
<span style="color: red"></span>
</p>
<!-- <button id="suBtn">提交</button>-->
<p>password:
<input type="text" id="d2">
<span style="color: red;"></span>
</p>
<button id="suBtn">提交</button>
<script>
// 1. 查找提交按钮的标签
subEle = document.getElementById('suBtn')
// 2. 给按钮标签绑定点击事件 onclick 当被点击时
subEle.onclick = function () {
// 3. 查找获取用户输入的标签并获取数据
let userNameEle = document.getElementById('d1')
let passWordEle = document.getElementById('d2')
// 清空输入框
userNameEle.onfocus = function () {
this.value = ''
userNameEle.nextElementSibling.innerText = ''
}
passWordEle.onfocus = function () {
this.value = ''
userNameEle.nextElementSibling.innerText = ''
}
if (userNameEle.value === 'xiaochen') {
userNameEle.nextElementSibling.innerText = `${userNameEle.value}你已经被拉黑`
}
if (passWordEle.value === '123') {
passWordEle.nextElementSibling.innerText = `${userNameEle.value}密码不能是${passWordEle.value}'`
}
}
</script>
// 省市联动
省
<select name="" id="d1">
</select>
市
<select name="" id="d2">
</select>
<script>
let data = {
"河北": ["廊坊市", "邯郸市"],
"北京": ["朝阳区", "海淀区"],
"山东": ["威海市", "烟台市"],
"安徽": ["芜湖市", "合肥市"],
"上海": ["浦东新区", "静安区"]
}
// 提前查找好省市的select标签
let proSeEle = document.getElementById('d1');
let citySeEle = document.getElementById('d2');
// 获取所有省的信息
for (let pro in data) {
// 创建option标签
let proOpEle = document.createElement('option');
// 添加文及属性
proOpEle.innerText = pro;
proOpEle.setAttribute('value', pro);
// 将创建好的option标签添加到省下拉框中
proSeEle.appendChild(proOpEle)
}
// 给省标签绑定文本域变化事件 onchange
proSeEle.onchange = function () {
citySeEle.innerHTML = ''; // 每次操作市之前清空
// 获取用户选择的省信息,根据省获取市信息
let targetProData = this.value;
let cityDataList = data[targetProData];
//循环获取每一个市信息,创建option标签,添加到市下拉框中
for (let i = 0; i < cityDataList.length; i++) {
let cityOpEle = document.createElement('option');
cityOpEle.innerText = cityDataList[i];
cityOpEle.setAttribute('value', cityDataList[i]);
citySeEle.appendChild(cityOpEle);
}
}
</script>
jQuery类库
概念
官方愿景:Write less,do more
1.加载速度快
2.选择器更多更好用
3.一行代码走天下
4.支持ajax请求(重点)
5.兼容多浏览器
准备工作
1.下载核心文件到本地引入(没有网络也可以使用)
<script src="jQuery3.6.js"></script>
2.CDN网络资源加载(必须有网络才可以使用)
https://www.bootcdn.cn/
https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.js
https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.min.js
jQuery导入之后需要使用关键字才可以使用
默认的关键字就是jQuery但是不好输入 官方简写为:$
js代码与jQuery代码对比
let pEle = document.getElementsByTagName('p')[0]
undefined
pEle.style.color = 'red'
pEle.nextElementSibling.style.color = 'green'
jQuery
$('p').first().css('color','yellow').next().css('color','blue')
标签对象与jQuery对象
- 不同的对象能调用的方法是不同的
在编写代码的时候一定要清楚手上的是什么对象 - 两者可以相互转换
标签对象转jQuery对象
$(标签对象)
jQuery对象转标签对象
jQuery对象[0]
JavaScript与jQuery基础入门到放弃的更多相关文章
- php面试专题---12、JavaScript和jQuery基础考点
php面试专题---12.JavaScript和jQuery基础考点 一.总结 一句话总结: 比较常考察的是JavaScript的HTML样式操作以及jQuery的选择器和事件.样式操作. 1.下列不 ...
- PHP面试 javascript和jQuery 基础
JavaScript基础 JavaScript语法 变量的定义:变量必须以字母开头 可以使用$和 _ 符号开头 变量名称对大小写敏感 使用 var 关键词声明变量 可以一次声明多个变量 ...
- jQuery基础入门(一)
jQuery是什么? jQuery是一个JavaScript常用的工具函数库.jQuery是一个轻量级的"写的少,做的多"的JavaScript库. jQuery当中包含有以下一些 ...
- jQuery基础入门+购物车案例详解
jQuery是一个快速.简洁的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨是"write Less,Do More",即倡导写更少的代码,做更多 ...
- js 从基础入门 到放弃 001
快速入门 JavaScript代码可以直接嵌在网页的任何地方,不过通常我们都把JavaScript代码放到<head>中: <html> <head> <s ...
- jQuery基础入门
一.什么是 jQuery Jquery它是javascript的一个轻量级框架,对javascript进行封装,它提供了很多方便的选择器.供你快速定位到需要操作的元素上面去.还提供了很多便捷的方法. ...
- jQuery基础入门(二)
jQuery 效果 显示和隐藏 在 jQuery 中可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素,以及使用 toggle() 方法能够切换 hide() 和 show() ...
- jQuery基础之一
jQuery基础之一 初识jQuery jQuery封装JavaScript中多个好用的函数成为并形成代码库,操作时也更符合我们的习惯,并且减少了浏览器之间的兼容性. jQuery官网 引入 本地 ...
- jQuery:自学笔记(1)——基础入门
jQuery:自学笔记(1)——基础入门 认识JQuery 1.jQuery概述 jQuery是一个快速.小巧 .功能丰富的JavaScript函数库.它可以实现“写的少,做的多”的目标. jQuer ...
- jquery插件开发基础入门
jquery插件开发基础入门 入门 编写一个jquery插件开始于给jquery.fn加入新的功能属性,此处添加的对象属性的名称就是你的插件名称 jQuery.fn,myPlugin = functi ...
随机推荐
- 用SQL命令查看Mysql数据库大小 统计数据库空间占用
-- 1. 进入information_schema 数据库(存放了其他的数据库的信息) use information_schema; -- 2. 查询所有数据的大小: select concat( ...
- 模拟数据生成器mock.js入门
1.在某一指定目录下,按下shift+鼠标右键,,点击"在此处打开Powershell窗口(S)",启动命令行窗口.如下图: 2.在窗口中输入以下命令以便创建项目:vue crea ...
- [转]worldwind在线加载google地图,或者基于墨卡托投影的切片地图
package gis1; import java.net.MalformedURLException; import java.net.URL; import gov.nasa.worldwind. ...
- IM跨平台技术学习(四):蘑菇街基于Electron开发IM客户端的技术实践
本文由蘑菇街前端技术团队分享,原题"Electron 从零到一",有修订和改动. 1.引言 本系列文章的前面几篇主要是从Electron技术本身进行了讨论(包括:第1篇初步了解El ...
- Coravel:一个可轻松实现任务调度、队列、邮件发送的开源项目
推荐一个轻量级的任务调度开源项目. 01 项目简介 Coravel是一个.NET开源任务调度库,只需简单代码.几乎零配置就可以实现多种功能柜,如任务调度.队列.缓存.事件广播和邮件发送等.该项目特点就 ...
- (十).NET6.0 搭建基于Quartz组件的定时调度任务
1.添加Quartz定时器组件 2.新建类库项目Wsk.Core.QuartzNet,并且引用包类库项目.然后新建一个中间调度类,叫QuartzMiddleJob 3.新建一个Job工厂类,叫YsqJ ...
- Flutter的一些概念(二)
注:本文同步发布于微信公众号:stringwu的互联网杂谈 Flutter的一些概念(二) 1 flutter的核心渲染模块 当应用启动时flutter 会遍历所有的Widget 形成Widget 树 ...
- python语法第二篇
练习:输入一个长字符串,判断其中数字的个数. # 输入一个长字符串,判断其中数字的个数. s1 = input("请输入一个包含字母和数字的字符串:") # wdqwddwq78d ...
- neo4j存储数据-图数据库
1. 简介 本文主要介绍neo4j是如何将图数据保存在磁盘上的,采用的是什么存储方式.分析这种存储方式对进行图查询/遍历的影响. 2. 图数据库简介 生产环境中使用的图数据库主要有2种,分别是带标签的 ...
- Spring 注解Annotation代替XML实现零配置
1. 使用Spring注解来注入属性1.1. 使用注解以前我们是怎样注入属性的类的实现: public class UserManagerImpl implements UserManager { p ...