web前端技术笔记(九)JavaScript介绍、变量、操作元素属性

2023-11-19

JavaScript介绍

JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互。 JavaScript是浏览器解释执行的,前端脚本语言还有JScript(微软,IE独有),ActionScript( Adobe公司,需要插件)等。

前端三大块
1、HTML:页面结构
2、CSS:页面表现:元素大小、颜色、位置、隐藏或显示、部分动画效果
3、JavaScript:页面行为:部分动画效果、页面与用户的交互、页面功能
#JavaScript嵌入页面的方式

1、行间事件(主要用于事件)

<input type="button" name="" onclick="alert('ok!');">

2、页面script标签嵌入

<script type="text/javascript">        
    alert('ok!');
</script>

3、外部引入

<script type="text/javascript" src="js/index.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>

	<!-- 第三种嵌入js的方式:外链js   -->
	<script type="text/javascript" src="js/hello.js"></script>
	
	<!-- 第二种嵌入js的方式:内嵌js   -->
	<script type="text/javascript">		
		alert("hello world too!");
	</script>

</head>
<body>

	<!-- 第一种嵌入js的方式:行间事件   -->
	<input type="button" name="" value="点击" onclick="alert('hello world!')">
</body>
</html>

变量

JavaScript 是一种弱类型语言,javascript的变量类型由它的值来决定。 定义变量需要用关键字 ‘var’

 var iNum = 123;
 var sTr = 'asd';

//同时定义多个变量可以用","隔开,公用一个‘var’关键字

 var iNum = 45,sTr='qwe',sCount='68';

变量类型

5种基本数据类型:
1、number 数字类型
2、string 字符串类型
3、boolean 布尔类型 true 或 false
4、undefined undefined类型,变量声明未初始化,它的值就是undefined
5、null null类型,表示空对象,如果定义的变量将来准备保存对象,可以将变量初始化为null,在页面上获取不到对象,返回的值就是null

1种复合类型:
object

javascript语句与注释

1、一条javascript语句应该以“;”结尾

<script type="text/javascript">    
var iNum = 123;
var sTr = 'abc123';
function fnAlert(){
    alert(sTr);
};
fnAlert();
</script>

2、javascript注释

<script type="text/javascript">    

// 单行注释
var iNum = 123;
/*  
    多行注释
    1、...
    2、...
*/
var sTr = 'abc123';
</script>

变量、函数、属性、函数参数命名规范

1、区分大小写
2、第一个字符必须是字母、下划线(_)或者美元符号($)
3、其他字符可以是字母、下划线、美元符或数字

匈牙利命名风格:

对象o Object 比如:oDiv
数组a Array 比如:aItems
字符串s String 比如:sUserName
整数i Integer 比如:iItemCount
布尔值b Boolean 比如:bIsComplete
浮点数f Float 比如:fPrice
函数fn Function 比如:fnHandler
正则表达式re RegExp 比如:reEmailCheck

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript">

		// 单行注释

		/*
			多行注释
			下面将两个变量申明合成一句
		*/
		
		//var iNum = 12;
		//var sTr = 'abc';


		var iNum = 12,sTr='abc';

		var iNum02;


		//alert(iNum);

		//alert(sTr);

		alert(iNum02);




	</script>
</head>
<body>
	
</body>
</html>

获取元素方法一

可以使用内置对象document上的getElementById方法来获取页面上设置了id属性的元素,获取到的是一个html对象,然后将它赋值给一个变量,比如:

<script type="text/javascript">
    var oDiv = document.getElementById('div1');
</script>
....
<div id="div1">这是一个div元素</div>

上面的语句,如果把javascript写在元素的上面,就会出错,因为页面上从上往下加载执行的,javascript去页面上获取元素div1的时候,元素div1还没有加载,解决方法有两种:

第一种方法:将javascript放到页面最下边

....
<div id="div1">这是一个div元素</div>
....

<script type="text/javascript">
    var oDiv = document.getElementById('div1');
</script>
</body>

第二种方法:将javascript语句放到window.onload触发的函数里面,获取元素的语句会在页面加载完后才执行,就不会出错了。

<script type="text/javascript">
    window.onload = function(){
        var oDiv = document.getElementById('div1');
    }
</script>

....

<div id="div1">这是一个div元素</div>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>

	<script type="text/javascript">
		// 整个页面加载完后再加载花括号内得代码
		window.onload = function(){

			/*
			document.getElementById('div1').style.color = 'red';
			document.getElementById('div1').style.fontSize = '30px'
			
			用变量简化代码:

			*/
			// 通过id获取元素赋值给oDiv
			var oDiv = document.getElementById('div1');
			// 改变元素属性
			oDiv.style.color = 'red';
			oDiv.style.fontSize = '30px';

		}		


	</script>


</head>
<body>
	<div id="div1">这是一个div元素</div>



</body>
</html>

操作元素属性

获取的页面元素,就可以对页面元素的属性进行操作,属性的操作包括属性的读和写。

操作属性的方法
1、“.” 操作
2、“[ ]”操作

属性写法

1、html的属性和js里面属性写法一样
2、“class” 属性写成 “className”
3、“style” 属性里面的属性,有横杠的改成驼峰式,比如:“font-size”,改成”style.fontSize”

通过“.”操作属性:

<script type="text/javascript">

    window.onload = function(){
        var oInput = document.getElementById('input1');
        var oA = document.getElementById('link1');
        // 读取属性值
        var sValue = oInput.value;
        var sType = oInput.type;
        var sName = oInput.name;
        var sLinks = oA.href;
        // 写(设置)属性
        oA.style.color = 'red';
        oA.style.fontSize = sValue;
    }

</script>

......

<input type="text" name="setsize" id="input1" value="20px">
<a href="http://www.itcast.cn" id="link1">1122</a>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript">
		
		window.onload = function(){
			var oDiv = document.getElementById('div1');
			var oA = document.getElementById('link');
			var oDiv2 = document.getElementById('div2');

			// 读取属性
			var sId = oDiv.id
			alert(sId);

			
			// 写属性
			oDiv.style.color = "red";
			oA.href = "http://www.baidu.com";
			oA.title = "这是去到百度网的链接";


			// 操作class属性需要写成 className
			oDiv2.className = "box2";
		}

	</script>

	<style type="text/css">
		
		.box{
			font-size:20px;
			color:gold;
		}

		.box2{
			font-size:30px;
			color:pink;
		}

	</style>
</head>
<body>
	<div id="div1">这是一个div元素</div>
	<a href="#" id="link">这个一个链接</a>

	<div class="box" id="div2">这是第二个div</div>
</body>
</html>

通过“[ ]”操作属性:

<script type="text/javascript">

    window.onload = function(){
        var oInput1 = document.getElementById('input1');
        var oInput2 = document.getElementById('input2');
        var oA = document.getElementById('link1');
        // 读取属性
        var sVal1 = oInput1.value;
        var sVal2 = oInput2.value;
        // 写(设置)属性
        // oA.style.val1 = val2; 没反应
        oA.style[sVal1] = sVal2;        
    }

</script>

......

<input type="text" name="setattr" id="input1" value="fontSize">
<input type="text" name="setnum" id="input2" value="30px">
<a href="http://www.itcast.cn" id="link1">传智播客</a>
<div id="div1">这是一个div元素</div>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript">
		window.onload = function(){
			var oDiv = document.getElementById('div1');
			var sMystyle = 'fontSize';
			var sValue = '30px';
			/*	
				这一句没有作用:变量sMystyle被认为是一个属性
				oDiv.style.sMystyle = sValue;
			*/

			/* 
				属性用变量来代替的话需要用[]来操作

			 */
			oDiv.style[sMystyle] = sValue;
		}

	</script>
</head>
<body>
	<div id="div1">这是一个div元素</div>
</body>
</html>

innerHTML

innerHTML可以读取或者写入标签包裹的内容

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript">
		
		window.onload = function(){

			var oDiv = document.getElementById('div1');

			// 读取元素里面的内容
			var sTr = oDiv.innerHTML;
			alert(sTr);

			// 写元素里面的内容
			//oDiv.innerHTML = "修改的文字";
			oDiv.innerHTML = "<a href='http://www.itcast.cn'>传智播客</a>"

		}


	</script>
</head>
<body>
	<div id="div1">这是一个div元素</div>
</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

web前端技术笔记(九)JavaScript介绍、变量、操作元素属性 的相关文章

  • WebGL:enablevertexattribarray索引超出范围

    这是我的顶点和片段着色器
  • PMT功能 支付方式

    下面是我计算贷款付款的函数 就像在 Excel 中一样 我需要添加另一个参数 即付款类型 function PMT ir np pv fv ir interest rate per month np number of periods mo
  • 如何在 Rails 4 中“link_to”完整路径?

    这是我的代码 a a 从上面
  • Javascript:无法停止setTimeout

    我正在开发一个代理服务器检查器 并使用以下代码使用 setTimeout 函数以大约 5 秒的间隔启动请求 function check var url document getElementById url value var proxy
  • 如何判断一个app是原生的还是html5的? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想知道移动应用程序是如何原生或 html5 的 有没有什么软件或者网站可以说明这一点 如何检测应用程序是本机应用程序还是 html5 您可以使用 w
  • 如何使用 Material UI 制作一个圆形复选框?

    我尝试匹配的设计要求复选框为圆形 我正在使用 Material UI 和 React 边框半径不起作用 因为实际图标的边框不是可见复选框的边框 我不能只使用像 Font Awesome 这样的东西 因为它需要实际检查和取消检查 Curren
  • 循环遍历字符串中的 html 标签并将内部文本添加到数组中

    我有一些 HTML 内容保存为字符串 我想循环遍历该字符串中的每个标题标签并获取其内部文本 let str h1 topic 1 h1 p desc of topic 1 p h1 topic 2 h1 p desc of topic 2
  • 垂直对齐 li 内的图像和文本

    我试图将列表元素中的图像和一些文本垂直对齐到中间 但没有运气 eg ul li img src somepath sometext li li img src somepath2 sometext2 li ul 我该怎么做 谢谢 假设您的列
  • 使用 var 与 let/const 进行块级变量重新声明

    Part 1 给出这个例子 var number 10 var number 42 console log number 42 为什么第 4 行不抛出Uncaught SyntaxError Identifier number has al
  • window.onclose 函数

    我使用这个函数来调用我的窗口关闭 这是确认框弹出窗口 if confirm Sure you want to close the window yes return to submit function else no return to
  • 从网站保存嵌入的 pdf

    我正在编写一个小型 C 应用程序来管理供应商提供的 化学品 安全数据表 目前 我手动搜索该化学品并保存 pdf 并在我的程序中添加指向 pdf 的链接 问题是我还有很多化学品需要处理 所以最好将过程自动化 例如 化学品的部件号如下 2710
  • Chrome 扩展允许的键盘快捷键

    当您创建 Chrome 浏览器扩展程序时 您可以通过实现来建议键盘快捷键chrome 命令 https developer chrome com extensions commandsAPI 是否有允许的组合键的记录列表 Chrome 似乎
  • jQuery Deferred - 向 Deferred 合约添加回调

    我正在尝试在现有 Deferred 的状态设置为成功之前向其合约添加另一个异步调用 不要尝试用英语解释这一点 请参阅以下伪代码 when ajax url someUrl data data async true success funct
  • 检测 Service Worker 离线状态的最佳实践

    我有一个服务工作者应该缓存一个offline html客户端没有网络连接时显示的页面 然而 有时它会认为导航器已离线 即使它并未离线 那是 navigator onLine false 这意味着用户可能会得到offline html而不是实
  • 是否可以使用 JavaScript 检查加载的图像大小

    这是一个完全愚蠢的问题 但我只是想澄清我的疑问 当图像加载时 我们可以使用以下命令检查加载状态onload or oncomplete事件 但我只是想知道有多少部分图像是使用 JavaScript 加载的 真的可能吗 我的问题是 我们可以从
  • 同步 jQuery 动画

    我正在尝试同时获得淡入 不透明度切换 和边框淡入 使用jquery 动画颜色 http www bitstorm org jquery color animation 同时开火 但我遇到了一些麻烦 有人可以帮忙查看以下代码吗 fn exte
  • 从 BLOB 打印 PDF

    我从外部 API 获取 PDF 文件 使用此代码我可以正确下载该文件 var req new XMLHttpRequest req open POST url true req responseType blob req setReques
  • 将 csv 解析输出保存到变量

    我是使用 csv parse 的新手 项目 github 中的这个示例满足了我的需要 但有一个例外 我不想通过 console log 输出 而是想将数据存储在变量中 我尝试将 fs 行分配给变量然后返回data而不是记录它 但这只是返回了
  • 查找 div 元素中的所有链接并禁用它们

    假设我有一些如下所示的 HTML 元素 div span a href some link Click me a span div Hello everybody Click a href some link else me a to do
  • 类型错误: jasmine.getEnv().currentSpec 为 null

    当我尝试运行我的茉莉花规格时 我得到 TypeError jasmine getEnv currentSpec is null in http localhost 8888 JASMINE ROOT jasmine js line 498

随机推荐

  • 寒假集训——八

    寒假集训 七十六 字符串 1 创建字符串 2 字符集 3 字符串常用方法 4 json格式字符串 七十七 数字常用方法 Math对象 七十八 Date 1 new Date 2 时间对象常用方法 七十九 定时器 倒计时定时器 八十 BOM
  • epoll小结

    1 select和poll模型为什么会慢 假如有100w用户和一个进程保持tcp连接 而每一个时刻只有几十个活跃的连接 也就是说 每一个时刻进程只需要处理这100w连接中的一小部分 那么如何高效的处理 进程是否在每次询问操作系统收集有事件发
  • docker部署实操二:tomcat部署

    首先我们要去下载Tomcat的镜像 因为镜像本身就是一个简化的操作系统 一般来说你下一个镜像不用去里面设置环境变量 所谓的开箱即用 搜索tomcat镜像 首先第一步搜索镜像 docker search tomcat 下载指定版本的tomca
  • 白盒测试(单元测试JUnit使用参数化测试@Parameters)

    目录 1 背景知识 2 例子 3 参数化流程 4 执行结果 5 练习题 1 背景知识 在测试过程中 我们可能会遇到这样的函数 它的参数有许多特殊值
  • Linux使用nvida-smi查看GPU类型

    nvida smi提供一个查看GPU信息的方法 然而这种方式不能查看GPU型号 型号被省略成了GeForce RTX 208 如果我们需要查看GPU的型号 只需要运行nvidia smi L即可 mrfive ubuntu nvidia s
  • STM32移植freemodbusRTU(hal库)从机

    MODBUS源码下载 freemodbus源码 github地址 一 移植准备 1 cubemx创建基础工程 配置串口和定时器以及时钟 2 拷贝freertos源码到工程目录 新建一个freemodbus文件夹 拷贝modbus文件夹 3
  • 编码 & 8421BCD 码的故事

    计算机编码中 我们都是先了解了二进制 其中分有符号数 无符号数 然后会接触到BCD码 那么BCD码是怎么产生的 为什么又要用四位二进制来表示呢 8421BCD 码的故事 一 BCD码 1 由来 2 8421BCD码 3 修正 二 底层验证修
  • 是面试官放水,还是公司实在是太缺人?这都没挂,华为原来这么容易进...

    华为是大企业 是不是很难进去啊 在华为做软件测试 能得到很好的发展吗 一进去就有9 5K 其实也没有想的那么难 直到现在 心情都还是无比激动 本人211非科班 之前在字节和腾讯实习过 这次其实没抱着什么特别大的希望投递 没想到华为可以再给我
  • 编译内核linux-2.6.38 出现error (2013-03-28 10:42)

    内核建议到官网下载 当然如果签名对的话也可以 解压后 保险起见 make mrproper 然后 make oldconfig 最后 make menuconfig 配置内核 然后再开始编译 在编译内核linux 2 6 38 出现以下问题
  • Android 透明状态栏

    转载 https blog csdn net fan7983377 article details 51604657 最近公司产品提出透明状态栏的要求 将一张背景填充满屏幕 自己记录一下 Android 透明状态栏 有两种 背景是图片还是纯
  • PHP 生成excel

    PHP 生成excel 好用强大的php excel类库 做Magento的订单导出Excel功能 找了这个php的excel类 PHPExcel PHPExcel是强大的 MS Office Excel 文档生成类库 基于Microsof
  • 课程笔记3

    一 以太坊 比特币被称为区块链1 0 以太坊被称为区块链2 0 以太坊的符号是ETH 以太币的符号是Ether 单位是Wei 比特币的符号是BTC 单位是Satoshi 以太坊做出的改进 在以太坊中出块时间减少到十几秒 比特币的mining
  • iOS实训笔记—调用系统相机与网络请求

    iOS开发实训第三周周报 总结 本周开始进行项目的开发 目前小组计划共同完成前端开发 我负责的部分为个人页面 其中涉及到加载个人信息时 需要从相册或相机获取图片 作为头像上传 并进行网络请求 获取资源 因此本周周报总结这部分的内容 学习知识
  • NeRF学习笔记(含公式、图解和过程)

    NeRF学习笔记 关注公众号 不定期分享NeRF相关文献 引言 NeRF Representing Scenes as Neural Radiance Fields for View Synthesis作为2020年ECCV的一篇论文 在用
  • 51单片机的智能饮水机控制系统【proteus仿真+程序+原理图】

    1 主要功能 该系统由AT89C51单片机 LCD1602模块 DS18B20温度传感器模块 DS1302时间模块 继电器驱动模块 电位器模块构成 适用于智能饮水机 智能水杯等相似项目 可实现功能 版本一 1 LCD1602实时显示时间 水
  • 在CentOS上安装桌面环境(例如GNOME)

    可以按照以下步骤在 CentOS 上安装桌面环境 例如 GNOME 确保您的 CentOS 系统已连接到互联网 并拥有 root 或具有 sudo 权限的用户 打开终端 并使用 yum 包管理器更新系统 sudo yum update 安装
  • MSP430嵌入式接口编程(惯性测量单元温湿度双音多频磁力计LCD显示等)

    Energia IDE编程MSP430 GPIO 串口通讯 定时中断 添加库 嵌入式器件接口编程 加速度计 include
  • 全 民 进 入 互 联 网

    2015年 3C行业的变化有目共睹 互联网 的概念全面深入人心 贯穿于企业经营和百姓的日常生活中 通讯行业提速降费 诸多国产精品手机现身 电商行业更加规范 移动端超越PC端成为主流渠道 家电行业诞生多个新技术 智能家电格局正在改写 让我们一
  • C++实现FFT频谱分析

    Update 9 10 2022 鸽了太久 增补了一些新的表述和简单推导 以及FFT在算法竞赛中的应用部分 帖子里的代码已经分别在2021全国大学生电子设计竞赛 洛谷OJ和课程设计中实战过 可靠性有保障 Origin 10 23 2021
  • web前端技术笔记(九)JavaScript介绍、变量、操作元素属性

    JavaScript JavaScript介绍 变量 变量类型 变量 函数 属性 函数参数命名规范 获取元素方法一 操作元素属性 通过 操作属性 通过 操作属性 innerHTML JavaScript介绍 JavaScript是运行在浏览