Web之JavaScript(jQuery)笔记

Web之HTML、CSS、JavaScript

      • 三、JavaScript
        • JS调试
        • 变量
        • 自定义函数
        • 数据类型及转换
        • 运算符优先级
        • 内置函数
        • 数组
        • 事件
        • DOM(Document Object Model 文档对象模型)
        • jQuery

Web之HTML笔记
Web之CSS笔记

三、JavaScript

JavaScript(简称“JS”)是一种轻量级的面向对象的编程语言,既能用在浏览器中控制页面交互,也能用在服务器端作为网站后台(借助 Node.js),因此 JavaScript 是一种全栈式的编程语言。

JavaScript 是一种跨平台的解释型语言,不需要提前编译,能在各种操作系统下运行。

页面使用js的方法:

  • 使用<script>在HTML页面中插入JavaScript
<body><script type="text/javascript">alert("hello javascript");</script>
</body>
  • 引用外部JS文件
<script type="text/javascript" src="js1.js></script>
JS调试

1.使用console输出

console.log('Hello World!');

console是一个非常便捷的调试工具,可以用来输出当前变量的值,也可以用来输出一些提示信息。

2.alert
alert是javascript中的一个内置函数,用于显示带有一条指定消息和一个“确认”按钮的警告框.

alert("文本")

警告框经常用于确保用户可以得到某些信息;当警告框出现后,用户需要点击确定按钮才能继续进行操作。

3. 使用Chrome开发者工具进行调试
Chrome开发者工具是浏览器内置的一种调试工具,使用它可以进行变量查看、断点调试、性能分析等操作。例如:

打开Chrome浏览器
打开需要进行调试的网页
在Chrome菜单栏中选择“开发者工具”
在“Sources”面板中添加断点,然后运行代码
调试过程中,可以通过“Console”面板查看变量的值,或者使用调试命令进行调试

Chrome开发者工具是比较常用的调试方法之一,可以方便地查看变量的值、调试执行路径、性能分析等操作,非常适合JavaScript编程中使用。

变量

因为js是弱类型语言,所以,在定义变量的时候,所有的数据类型都是var。
声明变量:var x; var x,y;

自动类型转换

	数字 + 字符串:数字转换为字符串  10+'a'  -> 10a数字 + 布尔值:true转换为1,false转换为0   true+5 ->6字符串  +  布尔值:布尔值转换为字符串true 或 false  true+'a' -> truea布尔值  +  布尔值 : 布尔值转换为数值1 或 0  true+true ->2
自定义函数

1.在Javascript中必须用function关键字

function functionName(parameters){//函数内的代码return value;
}

2.匿名函数

var fucName = function(arg1, arg2, ...){statements;
}
var num1=function(n1,n2){var n3=n1+n2;return n3;
}
var n=num1(14,14);
alert(n);
alert(num2(3,6));
function num2(n1,n2){return n1+n2;
}
数据类型及转换
类型作用
number数字类型,整型浮点型都包括
srting字符串类型,必须放在单引号或双引号中
boolean布尔类型,只有true和false两种值
underfine未定义,一般指的是已经声明,但是没有赋值的变量
null空对象类型,var a = null, 和var a = ""有区别;
特殊类型作用
object对象类型,在js常见的有window,document,array等
NaN是Number的一种特殊类型,isNaN(),如果是数字返回false,不是数字返回true

数据类型转换函数

  • parseInt:强制转换成整数

如果不能转换,则返回NaN(NaN属性是代表非数字值的特殊值。)
例如:parseInt(“6.32”)=6

  • parseFloat:强制转换成浮点数

如果不能转换,则返回NaN
例如:parseFloat(“6.32”)=6.32

  • Number() 转换数值

  • Boolean() 转换布尔值

// var str="123";
// console.log(str*1+1);
// console.log(parseInt(str)+1);var str1="abc";
if(!isNaN(str1)){console.log(parseInt(str1));
}else{console.log("is error");str1=0;
}
console.log(str1);
运算符优先级

在这里插入图片描述

内置函数

在这里插入图片描述

  • substring(开始,结束):截取字符串中一部分(结束是不包含的)
  • charAt(下标):返回某个下标上的字符
  • split(分割的节点):一个字符串切割成N个 小字符串,所以返回的是数组类型
  • length:获取字符串的长度(字符串中字符的个数)属性,没有小括号
  • indexof(字符):查找字符串中字符出现的首次下标
  • replace(旧的,新的):将字符串中的旧字符串替换成新字符
  • concat(新元素):将原来的数组连接新元素,原数组不变
var arr = [1,2,3,4];
var arrnew = arr.concat(5,6);   //在arr数组的后面添加新的元素,形成一个新数组,但是原数组是不变的
console.log(arrnew +",类型为:" + typeof(arrnew));
console.log("原数组:" + arr);
var d1=new Date();
var d2=new Date("2020-1-1");
console.log(d1.getDate());
console.log(d1.getMonth()+1);//从0开始,0-11
console.log(d1.getFullYear());
console.log(d1.getHours());
console.log(d1.getMinutes());
console.log(d1.getSeconds());
var n=d2.getTime()-d1.getTime();
console.log(parseInt(n/(24*3600*1000)));
//2020-1-1 15:58   日期格式化function fun_FmtDate(){var d1=new Date();var yyyy,mm,dd,hh,mi,ss;var time;yyyy=d1.getFullYear()mm=d1.getMonth()+1;  //月份从0开始,11结束dd=d1.getDate();hh=d1.getHours();mi=d1.getMinutes();ss=d1.getSeconds();time=yyyy+"-"+mm+"-"+dd+" "+hh+":"+mi+":"+ss;return time;
}
console.log(fun_FmtDate());
数组
// 声明或创建一个不指定长度的数组,又称实例化创建:
// var arrayObj=new Array();
// // 声明或创建一个数组并指定长度的数组: 
// var arrayObj=new Array(5);
// // 声明或创建一个带有默认值的数组:
// var arrayObj=new Array(2,4,"a","y",8);
// // 创建一个数组并赋值的简写.又称隐式创建数据
// var arrayObj=[2,4,"a","y",8,5,1];
//数组赋值、字符下标、数组遍历
//console.log(arrayObj[5]);
// for(var i in arrayObj){
//    console.log(arrayObj[i]);
// }
var i=0;
var n=arrayObj.length;
for(i;i<n;i++){console.log(arrayObj[i]);
}
事件

事件是指被程序发现的行为或发生的事情,而且它可能会被程序处理。
JS的事件,都是以on开头。
在这里插入图片描述
表单元素事件(Form Element Events)
仅在表单元素中有效

  • onblur 当元素失去焦点时执行脚本
  • onfocus 当元素获得焦点时执行脚本
  • onSubmit 当表单提交时触发
  • onChange :当状态改变时触发,常用于select下拉选框

键盘事件

  • onkeydown 按下去
  • onkeyup 弹上来
  • onkeypress :当键盘按下时触发(要快于onkeydown)

鼠标事件(Mouse Events)

  • onclick 当鼠标被单击时执行脚本
  • ondblick 当鼠标被双击时执行脚本
  • onmouseout 当鼠标指针移出某元素执行脚本
  • onmouseover 当鼠标指针悬停于某元素之上时执行脚本
  • onMouseDown :当鼠标按下时触发
DOM(Document Object Model 文档对象模型)

将文档(页面)表现为结构化的表示方法,使每一个页面元素都是可操控,DOM将页面和脚本以及其他的编程语言联系了起来。

DOM树
在这里插入图片描述
核心 DOM:针对任何结构化文档的标准模型。 XML 和 HTML 通用的标准

  • Document:整个文档对象
  • Element:元素对象
  • Attribute:属性对象
  • Text:文本对象
  • Comment:注释对象

获取 Element对象
HTML 中的 Element 对象可以通过 Document 对象获取,而 Document 对象是通过 window 对象获取。

1.Document 对象中提供了以下获取 Element 元素对象的函数

  • getElementById():根据id属性值获取,返回单个Element对象
  • getElementsByTagName():根据标签名称获取,返回Element对象数组
  • getElementsByName():根据name属性值获取,返回Element对象数组
  • getElementsByClassName():根据class属性值获取,返回Element对象数组
  • document.querySelector(selector): 根据选择器获取第一个匹配的元素。
  • document.querySelectorAll(selector): 根据选择器获取所有匹配的元素。

2.创建元素:

  • document.createElement(tagName): 创建一个指定标签名的元素节点。
  • document.createTextNode(text): 创建一个包含指定文本内容的文本节点。

3.修改元素属性和内容:

  • element.setAttribute(name, value): 设置元素的属性值。
  • element.getAttribute(name): 获取元素的属性值。
  • element.innerHTML: 设置或获取元素的HTML内容。
  • element.innerText: 设置或获取元素的文本内容。

4.添加和删除元素:

  • parentElement.appendChild(newChild): 将一个新的子节点添加到指定父节点的子节点列表的末尾。
  • parentElement.removeChild(child): 从指定父节点的子节点列表中删除一个子节点。

Python读写xml(xml,lxml)

jQuery

jQuery是一个快速、简洁的JavaScript框架。 使用户能更方便地处理HTML, css, dom…

  • DOM对象:用原生JS获取过来的对象,一般使用原生的JS方法和属性
  • jQuery对象:通过$把DOM元素获取过来(以伪数组形式存储),不能使用DOM对象的原生JS方法和属性

jQuery选择器
$(“选择器”)要直接写css选择器,记住加引号

选择器写法
ID选择器$(“#id”)
全选选择器$(“*”) 匹配所有元素
类选择器$(“.class”)
标签选择器$(“标签”) eg:div
并集选择器$(“div,p,li”) 选取多个元素
交集选择器$(“li.current”)
子代选择器$(“ul>li”) 只获取亲儿子层级的元素
后代选择器$(“ul li”) 中间空格表示,获取ul下边的所有li,包括孙子

筛选选择器

语法用法
:first$(“li:first”) 获取第一个li元素
:last$(“li:last”) 获取最后一个li元素
:eq(index)$(“li:eq(2)”) 获取到的li元素中选取索引号是2的元素
:odd$(“li:odd”) 获取li元素中,选取奇数
:even$(“li:even”) 获取li元素中,选取偶数
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>jQuery选择器的练习</title><link rel="stylesheet" href=""><script src="./js/jquery-3.4.1.js" type="text/javascript"></script><script type="text/javascript">// jQuery代码的内容// $(document).ready(function() {// 	// 根据ID// 	var username = $('#username');// 	// var username = jQuery('#username');// 	console.log(username);// 	// 根据class来查询// 	var areaList = jQuery('.area');// 	console.log(areaList);// 	// 根据元素标签来查询// 	var pList = $('p');// 	console.log(pList)// });// $(function() {jQuery(function() {// 根据IDvar username = $('#username');// var username = jQuery('#username');console.log(username);// 根据class来查询var areaList = jQuery('.area');console.log(areaList);// 根据元素标签来查询var pList = $('p');console.log(pList)// 层级选择器// var bodyList = $('body *');// 所有的后代元素pvar bodyList = $('body p');console.log(bodyList);// 直接的子元素bodyList = $('body > p');console.log(bodyList);// 紧贴之后的元素var input = $('label + input');console.log(input)// 伪类选择器练习var pFirst = $('p:first');console.log(pFirst)var p2  = $('p:eq(1)');console.log(p2);// 属性选择器var password = $('input[name="password"]');// var password = $('input[name^="passw"]');console.log(password)var idInputList = $('input[id]');console.log(idInputList)})</script>
</head>
<body><label for="username">用户名</label><input type="text" name="username" id="username"><input type="password" name="password" ><p class="area city">广州</p><p>深圳</p><p class="area">长沙</p><p class="area" id="beij">北京</p><div><p>海南</p></div></body>
</html>

jQuery属性操作

  • element.attr(“属性”)获取元素的自定义属性
  • element.attr(“属性”,“属性值”)设置元素的自定义属性
  • val()获得表单元素中的value值
  • val(“x”)修改表单元素中的value值
  • html()获得元素中的内容(标签+文本)
  • html(“x”)修改元素中的内容(标签+文本)
  • text()获得元素中的文本
  • text(“x”)修改元素中的文本
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>DOM查询</title><link rel="stylesheet" href=""><script src="./js/jquery-3.4.1.min.js" type="text/javascript"></script>
</head>
<body><input type="text" name="username" id="username" class="input-text user-input" my-user='张三'value="我的用户名"><!-- textarea  select checkbox radio --><input type="text" name="password"><p class="area city">广州</p><p style="color:#f00;">深圳</p><p class="area">长沙 <span>测试数据</span></p><p class="area" id="beij">北京</p><p class="info" id="info" style="display: none;">查看详细<span>内容:</span><small>文字描述</small></p><script>$(function() {var pList = $('p');// // 第一个p元素// var p1 = pList.get(0);// console.log(p1);// var p3 = pList.get(2);// console.log(p3);console.log(pList);console.log('总共有几个:', pList.length);// for 循环遍历for (var i=0; i<pList.length; i++) {var item = pList[i];console.log(item)}// .each函数循环遍历console.log('---------------------')pList.each(function(index, value) {console.log(index, value)});console.log('--------------');  // json对象数组[{username: },{},]$.each(['a', 'bbb', 'ccc'], function(index, value) {console.log(index, value)})// .find的使用var list = pList.find('span');console.log(list)// 构建dom对象var htmlDom = $('<p class="test"/>');console.log(htmlDom)// 添加到html dom// htmlDom.appendTo('body');// $('body').append(htmlDom);// 在dom中添加内容// htmlDom.html('<span>我是新加的</span>');// $('body').append(htmlDom);// $('#beij').html('<span>我是新加的</span>');// .text() .val()// $('#beij').attr('class', '666');// 添加新的class$('#beij').addClass('666');// 移除class$('#beij').removeClass('area');// 操作css样式$('#beij').css({'color': '#0f0','background-color': '#000'})// 隐藏元素// $('#info').hide();// 显示元素$('#info').show();// jQuery的链式调用var myDom = $('<p/>').text('你好').append('<span>,财主</span>').appendTo('body');// console.log(myDom)})</script>
</body>
</html>

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

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

相关文章

事件溯源(Event Sourcing)和命令查询责任分离(CQRS)经验

这篇文章是实现一个基于 CQRS 和事件溯源原则的应用程序&#xff0c;描述这个过程的方式&#xff0c;我相信分享我面临的挑战和问题可能对一些人有用。特别是如果你正在开始自己的旅程。 业务背景 项目的背景与空中交通管理&#xff08;ATM&#xff09;领域相关。我们为一个 …

MATLAB | 绘图复刻(十三) | 带NaN图例的地图绘制

有粉丝问我地图绘制如何添加NaN&#xff0c;大概像这样&#xff1a; 或者这样&#xff1a; 直接上干货&#xff1a; 原始绘图 假设我们有这样的一张图地图&#xff0c;注意运行本文代码需要去matlab官网下载Mapping Toolbox工具箱&#xff0c;但是其实原理都是相似的&…

level=warning msg=“failed to retrieve runc version: signal: segmentation fault“

安装docker启动后&#xff0c;发现里面没有runc版本信息 目前看是少了runc组件 那我们安装runc https://github.com/opencontainers/runc/releases/download/v1.1.10/runc.amd64 [rootlocalhost ~]# mv runc.amd64 /usr/bin/runc mv&#xff1a;是否覆盖"/usr/bin/runc&q…

【算法设计实验三】动态规划解决01背包问题

请勿原模原样复制&#xff01; 01背包dp具体解释详见链接 ↓ 【算法5.1】背包问题 - 01背包 &#xff08;至多最大价值、至少最小价值&#xff09;_背包问题求最小价值_Roye_ack的博客-CSDN博客 关于如何求出最优物品选择方案&#xff1f; 先在递归求dp公式时&#xff0c;若…

Windows 安装 Docker

目录 前言安装 WSL2WSL2 简介系统要求安装步骤 安装 Docker Desktop下载安装验证 安装 Docker Compose结语开源项目 前言 下图展示了在 Windows 系统上安装 Docker&#xff0c;并利用Docker Compose一键搭建 youlai-mall 微服务商城所需的环境。本篇将先介绍 Windows 上如何安…

linux 系统调用流程分析

x86 1.系统调用 系统调用是用户空间程序与内核交互的主要机制。系统调用与普通函数调用不同&#xff0c;因为它调用的是内核里的代码。使用系统调用时&#xff0c;需要特殊指令以使处理器权限转换到内核态。另外&#xff0c;被调用的内核代码由系统调用号来标识&#xff0c;而…

树与二叉树堆:堆

堆的概念&#xff1a; 一般是把数组的数据在逻辑结构上看成一颗完全二叉树&#xff0c;如下图所示。 注意&#xff1a;别将C语言中的堆和数据结构的堆混为一谈&#xff0c;本文所讲的数据结构的堆是一种完全二叉树&#xff0c;而C语言中的堆其实是一种内存区域的划分 堆的分类…

VMware——WindowServer2012R2环境安装mysql5.7.14解压版_互为主从(图解版)

目录 一、服务器信息二、192.168.132.35服务器上安装mysql&#xff08;主&#xff09;2.1、环境变量配置2.2、安装2.2.1、修改配置文件内容2.2.2、初始化mysql并指定超级用户密码2.2.3、安装mysql服务2.2.4、启动mysql服务2.2.5、登录用户管理及密码修改2.2.6、开启远程访问 三…

docker更换国内源

docker更换国内源 1、编辑Docker配置文件 在终端中执行以下命令&#xff0c;编辑Docker配置文件&#xff1a; vi /etc/docker/daemon.json2、添加更新源 在打开的配置文件中&#xff0c;添加以下内容&#xff1a; {"registry-mirrors": ["https://hub-mirror…

gitlab环境准备

1.准备环境 gitlab只支持linux系统&#xff0c;本人在虚拟机下使用Ubuntu作为操作系统&#xff0c;gitlab镜像要使用和操作系统版本对应的版本&#xff0c;(ubuntu18.04,gitlab-ce_13.2.3-ce.0_amd64 .deb) book100ask:/$ lsb_release -a No LSB modules are available. Dist…

03-瑞吉外卖关于菜品/套餐分类表的增删改查

新增菜品/套餐分类 页面原型 当我们在后台系统中添加菜品/套餐时,需要选择一个菜品/套餐分类,在移动端也会按照菜品分类和套餐分类来展示对应的菜品和套餐 第一步: 用户点击确定按钮执行submitForm函数发送Ajax请求,将新增菜品/套餐表单中输入的数据以json形式提交给服务端,…

算法分析与设计课后练习22

设W(5,7,10,12,15,18,20)和M35&#xff0c;使用过程SUMOFSUB找出W种使得和数等于M的全部子集并画出所生成的部分状态空间树

CV计算机视觉每日开源代码Paper with code速览-2023.11.16

点击CV计算机视觉&#xff0c;关注更多CV干货 论文已打包&#xff0c;点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【基础网络架构】ConvNet vs Transformer, Supervised vs CLIP: Beyond ImageNet Accuracy 论文地址&#xff1a;https://arxiv.org//pdf/23…

数据分析思维与模型:多维度拆解分析法

多维度拆解分析法"&#xff08;Multi-Dimensional Analysis and Decomposition Method&#xff09;是一种用于深入分析和解决复杂问题的方法论。这种方法侧重于从多个角度或维度来考察问题&#xff0c;以便于更全面地理解和解决它们。它通常包括以下几个步骤&#xff1a; …

环保回收信息展示预约小程序的效果如何

人们每天在线上的时间非常多&#xff0c;他们会通过线上寻找信息&#xff0c;而环保回收企业也在通过线上寻找客户&#xff0c;但受限于平台限制&#xff0c;无论引流获客还是营销互动、或是数据分析及全面管理方面都面对难题&#xff0c;其中微信/百度/快手/抖音/支付宝/快手等…

我在CSDN开组会1-蒙特卡洛模拟在矿床学的应用展望

各位老师、同学们&#xff0c;大家好。今天组会的内容是蒙特卡洛模拟在矿床学的应用展望。 为什么要讲蒙特卡洛模拟呢&#xff0c;因为我发现在地质学方面已经有不少应用&#xff0c;但是蒙特卡洛模拟延伸的知识太晦涩了&#xff0c;劝退了很多探究者们。因此&#xff0c;计划…

DSP介绍及CCS

文章目录 CCS版本编译器CCS使用注意严禁中文 CCS的基本操作新建工程导入现有工程调整字体的大小工程界面恢复标签的使用 仿真盒小虫子进入在线Debug 芯片TMS320F28355基本介绍特性 DSP中特殊指令dsp指令中的EALLOW EDIS CCS TI官网 版本 CCS版本&#xff1a; CCS8.3.1.0004_…

腾讯云HAI域AI作画

目录 &#x1f433;前言&#xff1a; &#x1f680;了解高性能应用服务 HAI &#x1f47b;即插即用 轻松上手 &#x1f47b;横向对比 青出于蓝 &#x1f424;应用场景-AI作画 &#x1f424;应用场景-AI对话 &#x1f424;应用场景-算法研发 &#x1f680;使用HAI进行…

Web 自动化神器 TestCafe—页面基本操作篇

前 言 Testcafe是基于node.js的框架&#xff0c;以操作简洁著称&#xff0c;是web自动化的神器 今天主要给大家介绍一下testcafe这个框架和页面元素交互的方法。 一、互动要求 使用 TestCafe 与元素进行交互操作&#xff0c;元素需满足以下条件&#xff1a;☟ 元素在 body 页…

怎么让NetCore接口支持Json参数

项目&#xff1a;NetCore Web API 接口支持Json参数需要安装Newtonsoft.Json.Linq和Microsoft.AspNetCore.Mvc.NewtonsoftJson Program代码 //支持json需要安装Microsoft.AspNetCore.Mvc.NewtonsoftJson using Newtonsoft.Json.Serialization;var builder WebApplication.Cr…