JavaScript 客户端脚本语言 选择器、事件

news2024/11/24 19:10:20

JavaScript发展史

JavaScript介绍

JavaScript ( 简称 JS): 是一种轻量级客户端脚本语言,通常被直接嵌入 HTML 页面,在浏览器上执
行。
JavaScript 的主要用途 :
  • 使网页具有交互性(如果不去使用js,只是使用html css那么只是一些死的页面,那么你去点击一个按钮,你去做一些相关的动作,点击一个按钮,发起一个请求除了form表单提供发起请求的能力,那么别的就没有了,动作这一块全部都是使用js去控制),例如响应用户点击,给用户提供更好的体验
  • 处理表单,检验用户输入,并及时反馈提醒
  • 浏览器与服务端进行数据通信,主要使用Ajax异步传输
  • 在网页中添加标签,添加样式,改变标签属性等

基本使用

内部方式 ( 内嵌样式 ) ,在 body 标签中使用
<script type="text/javascript">
<!--
javaScript语言
-->
</script>
外部导入方式 ( 推荐 ) ,在 head 标签中使用
<script type="text/javascript" src="my.js"></script>
代码示例
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>首页</title>
    <link href="" type="text/css" rel="stylesheet"/>
    <style type="text/css">
    </style>
</head>

<body>
    <p>在html中如何使用javascript</p>
    <script type="text/javascript">
       var name = "hello" //变量定义
       alert(name) //警告框方法,浏览器提示信息
    </script>
</body>

</html>

其实js这部分的语言其实和后端是有点类似的,它也可以去做变量的定义,也有固定的方法,也有我们写的方法函数等。

事件

  • 事件指的是当HTML中发生某些事件时所调用的方法(处理程序)。 例如点击按钮,点击后做相应操作,例如弹出一句话
  • 用法:< some-HTML-element some-event ='JavaScript 代码'>

和css一样,在学css的时候一定要学选择器,在学js的时候,我们一定要学事件。

在前端页面来说,大部分动作都是绑定在事件上面去,事件会绑定在dom节点,或者html标签也好。

  • 常用事件

上面这些事件都是绑定到某个元素上面去的。

onchange:比如input输入框里面输入的内容有变化了,那么这就是一个change事件,然后有js方法去监听这个事件。其实也就是输入了某些内容,然后触发了change事件。

每个html元素id的值都是唯一的,

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>首页</title>
    <link href="" type="text/css" rel="stylesheet"/>
    <style type="text/css">
    </style>
</head>

<body>
  <button type="button" onclick="alert('onclick')">onclick</button>
  <button type="submit" onmouseover="alert('onmouseover')">onmouseover</button>
  <br/>
  输入你的名字:<input type="text" id="fname" onchange="myFunction()">
  <p>当你离开输入框的时候,小写字母将转化为大写字母</p>

<script>
    window.onload = f;
    function f() {
       alert("页面加载完毕");
    }

    function myFunction(){
        var x=document.getElementById("fname");
        x.value=x.value.toUpperCase();
    }
</script>

</body>

</html>

window.onload = f;整个浏览器窗口的一个概念,当你浏览器整个窗口加载完成时。

var x=document.getElementById("fname"); 拿到HTML元素,可以去操作它的值,并且改变它的值。

上面的id选择器是给js去使用的,它是一个唯一的值,如果好几个地方都定义id的值,那么都会发生变化。所以id一般是唯一的,并且给到某个js去使用,在某个特定的场景下去使用。

选择器

JS选择器主要用来获取HTML页面中的元素,将页面中的元素保存到一个对象中,然后就可以对这些对象的属性值进行相应操作,以实现一些动态效果,以达到页面的生动,易用。(不仅仅可以改变HTML中的值,属性也可以去改变,甚至可以去绑定这些东西的css)

需要注意的一点是操作的一定是对象 , 直接将元素当做对象使用是不行的。(得先通过js方法去获取到id对象)
常见选择器 : 标签选择器、类选择器、 ID 选择器

在最初期的时候,使用js html以及css去写前端,你需要自己去维护所有的动态操作,那么这些工作量是巨大的,自从高度封装的框架以及组件库出现了之后,它其实帮助我们代替了很多很多的工作。

后面大部分的动态操作框架都提供给你了,你只需要维护你的数据就行了。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>文档的标题</title>
<!-- <link href="main.css" type="text/css" rel="stylesheet"/> -->
</head>
<body>
    <button type="button" id="btn">点我-id</button>
   
    <div id="main">
        <p>Hello world!1</p>
        <p>Hello world!2</p>
        <p>Hello world!3</p>
    </div>

<script type="text/javascript">
    var z = document.getElementById('btn'); //获取id为btn的元素
    z.onclick = function () {
    alert('亲,有什么可以帮助你的-id?')
    }
    var x = document.getElementById('main'); //获取id为main的元素
    var y = x.getElementsByTagName("p"); // 返回的是一个集合,下标获取
    console.log(z, y)
    document.write('div中的第二段文本是:' + y[1].innerHTML); //向当前文档写入内容
</script>

</body>
</html>

首先是去获取了button的dom对象,获取之后在button上面绑定了事件。

上面是标签选择器和id选择器的一个例子。

JS操作HTML

  • 插入内容
document.write(“<p> 这是 JS 写入的段落 </p>”) ;       // 向文档写入 HTML 内容
x = document.getElementById(‘demo’) ;                  // 获取 id demo 的元素
x.innerHTML=“Hello”                                             // 向元素插入 HTML 内容
  •  改变标签属性:
document.getElementById(“image”).src=“b.jpg“ // 修改 img 标签 src 属性值
  • 改变标签样式  
x = document.getElementById(“p”) // 获取 id p 的元素
x.style.color=“blue” // 字体颜色
  • 代码示例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>文档的标题</title>
<!-- <link href="main.css" type="text/css" rel="stylesheet"/> -->
</head>
<body>
    <input id="input"></input>
    <p id="demo"></p>
    <script type="text/javascript">
        //直接写入到body中
        document.write('<p>这是JS写入的段落</p>')
        //通过id选择器写入
        x = document.getElementById('demo')
        x.innerHTML = "Hello"
        //修改标签属性
        document.getElementById('input').type = 'button'
        console.log(document.getElementsByClassName('p1'))
        //修改标签样式
        x.style.color = "blue"
    </script>
</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python主网站的SEO优化

Python主网站的SEO优化 作为一名有10年Python编程经验的工程师&#xff0c;我一直非常关注Python官方网站的SEO优化&#xff0c;因为官方网站对于传播Python语言的影响至关重要。在这篇文章中&#xff0c;我将介绍一些Python主网站的SEO优化策略&#xff0c;并总结一些结论&am…

程序切片(定义+用途)

程序切片(定义用途) 介绍 让我们假设我们测试了一个程序 p 并失败了&#xff08;错误的 输出&#xff09;。然后我们想找出导致失败&#xff08;故障&#xff09;的原因。 现在假设我们要更改程序的一部分。我们可能会问&#xff1a;程序的哪些其他部分受到影响 我们想找到导致…

1728_c语言标准库memcpy函数的简单使用

全部学习汇总&#xff1a; GreyZhang/c_basic: little bits of c. (github.com) 欢迎路过的YUAN类朋友相互交流&#xff0c;以下是我的联系方式&#xff1a; Email&#xff1a;greyzhang126.com 微信&#xff1a;grey0612 静态代码检测遇到了一处memcpy函数使用的错误&#…

如何DIY项目资源私有检测规则

本地资源检测是UWA推出的、面向于静态资源的全量分析。可以全面自动检测项目静态工程内各项资源、代码和设置&#xff0c;能够帮助项目组制定合理的资源与代码标准&#xff0c;及时发现潜在的性能问题和异常错误&#xff0c;建立有效的开发规范。 为了在游戏优化过程中持续与U…

计网之HTTPS的安全机制

文章目录 一. 什么是HTTPS?二. HTTPS中的加密机制(SSL/TLS)1. HTTP的安全问题2. 对称加密3. 非对称加密4. 中间人问题5. 证书 一. 什么是HTTPS? 在网络传输过程中, 存在着运营商劫持和一些黑客入侵这样的危险, 在之前只有HTTP的明文传输数据环境下, 这样的问题是有些泛滥的,…

java 利用poi根据excel模板导出数据(二)

本文是 java 利用poi根据excel模板导出数据&#xff08;一&#xff09; 的续篇 经常有poi的开发一定会碰到三个名词&#xff1a; HSSFWorkbook 、 XSSFWorkbook、SXSSFWorkbook&#xff1b; 这三个都是导出excel的形式&#xff0c;具体区别&#xff1a; HSSFworkbook,XSSF…

bert中文文本摘要代码(1)

bert中文文本摘要代码 写在最前面关于BERT使用transformers库进行微调 load_data.py自定义参数collate_fn函数BertDataset类主函数 tokenizer.py创建词汇表encode函数decode函数 写在最前面 熟悉bert&#xff0b;文本摘要的下游任务微调的代码&#xff0c;方便后续增加组件实现…

Vue.js+nodejs高校水电费缴费设备维修管理系统

本大学城水电管理系统管理员功能有个人中心&#xff0c;用户管理&#xff0c;领用设备管理&#xff0c;消耗设备管理&#xff0c;设备申请管理&#xff0c;设备派发管理&#xff0c;状体汇报管理&#xff0c;领用报表管理&#xff0c;消耗报表管理&#xff0c;班组报表管理&…

面向对象编程 实验二 MouseHit--SDUWH

来源网络。仅供参考 面向对象编程技术 实验二实验报告 1.实验要求 熟悉Visual Studio的环境与使用,创建一个新的工程以EasyWin为示例程序完成第一个Windows程序的编写、调试、运行。练习命令行的方式进行程序创建。 在理解Windows按键与鼠标的基础上,开发一个小型的打字…

feat:使用企业微信JS-SDK的onMenuShareAppMessage()实现点击转发自定义分享内容(TypeScript)

背景&#xff1a;企业微信应用使用企业微信JS-SDK的分享接口实现分享样式自定义 原生&#xff1a; 需要实现成&#xff1a; 企业微信JS-SDK 是企业微信面向网页开发者提供的 基于企业微信内 的网页开发工具包。 通过使用企业微信JS-SDK&#xff0c;网页开发者 可借助企业微信…

Python-shellcode免杀分离

#Python-原生态-MSF&CS&生成&执行代码 MSF-payload&#xff1a;msfvenom -p windows/meterpreter/reverse_tcp lhostX.X.X.X lport6688 -f c CS-payload&#xff1a; 攻击--生成后门--payload生成器--选择监听器和输出格式为C语言 python 3.10-32位&#xff0c;注…

如何将完成的报告从 FastReport .NET 导出到 S3

FastReport .NET 报表生成器FastReport .NET是适用于.NET Core 3&#xff0c;ASP.NET&#xff0c;MVC和Windows窗体的全功能报告库。使用FastReport .NET&#xff0c;您可以创建独立于应用程序的.NET报告。 简单存储服务是一种用于存储大量数据的服务。该服务将存储的数据划分…

BERT在GLUE数据集构建任务(未完待续。。。)

0 Introduction 谷歌开源的BERT项目在Github上&#xff0c;视频讲解可以参考B站上的一个视频 1 GLUE部分基准数据集介绍 GLUE数据集官网GLUE数据集下载&#xff0c;建议下载运行这个.py脚本文件进行数据集的下载&#xff0c;如果连接无法打开&#xff0c;运行下面代码。运行…

想知道视频转音频怎么操作?快来看看这三种方法

在数字化时代&#xff0c;视频已成为人们生活、学习、工作中不可或缺的元素。不过&#xff0c;在某些情况下&#xff0c;仅通过视觉体验来获取信息可能并不方便或实用。比如&#xff0c;对于听障人士&#xff0c;他们无法通过视觉方式获取信息&#xff0c;但可以通过听觉方式接…

一文教你高速PCB信号完整性仿真怎么做

在高速PCB设计中&#xff0c;信号完整性是确保信号在电路板上传输过程中的稳定性和可靠性的重点&#xff0c;通过仿真工具进行信号完整性可帮助工程师在设计阶段解决信号完整性问题&#xff0c;从而优化电路板的性能和可靠性。那么如何做好PCB信号完整性仿真&#xff1f;下面来…

1.3 eBPF的工作原理初探

写在前面 上一节提到过,eBPF程序是面向BPF体系结构指令集编写的,它并不直接运行在Linux内核中,我们可以理解为它是运行在eBPF虚拟机,由eBPF虚拟机来执行eBPF字节码,就像java运行在jvm一样。 我们用一张原理图来看下eBPF程序的编译,加载,验证,钩子,映射等结点。 如上是…

Matlab查找整行为0的行号并记录

find函数 该函数可以查找非零元素的索引和值 例如&#xff1a; X 331 0 20 1 10 0 4 k find(X) %返回非零元素的索引号&#xff0c;即按列检索对应数值的序号 k_0 find(~X) %返回零元素的索引号 matlab检索索引号的方式如下&#xff1a;输出结…

CDN之域名管理操作流程简介

一、火伞云端配置 1、点击“域名管理”&#xff0c;找到需要配置的域名&#xff0c;点击“常规配置” 2、进入“域名配置”界面&#xff0c;点击“配置我的CNAME” 3、将要配置的CNAME配置到我的DNS&#xff0c;请复制此处的CNAME地址&#xff0c;同时打开您网站所属的DNS服务…

Linux 扩展磁盘空间

1. 为什么我的 Linux 磁盘空间不够用&#xff1f;/ 插入新的磁盘要怎么用&#xff1f; [注]&#xff1a;第一节基本是一些啰里啰唆的内容&#xff0c;想直接看如何操作&#xff0c;请直接跳转至第二小节&#x1f9d0; 很多人遇到这样的问题&#xff0c;当给一台新的主机安装上…

MySQL报错cannot add foreign key constraint解决方法

1 问题场景 利用Navicat对MySQL两张表想要进行外键关联时设置正确&#xff0c;但出现出现如下错误 2 原因分析 创建外键错误的原因大概有一下几个原因&#xff1a; 1、关联的两个字段的字段的类型不一致 2、设置外键删除时set null 3、两张表的引擎不一致 2.1 数据类型不一…