目录
何为JavaScript
JavaScript原名liveScript是一门动态类型,弱类型基于原型的脚本语言。
JavaScript作用
页面特效、前后交互、后台开发(node)
JavaScript在哪里
script标签里、外部的js文件内
1、JS的基本使用
创建JS标签:<script></script>
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- 如果是标准库,一般会在这里引入 -->
</head>
<body>
//src外部引用js文件
<script src="demo_js.js"></script>
//内部引用
<script>
console.log("hello world")
</script>
</body>
</html>
innerText获取标签内的文字
innerHTML不仅能获取到标签内的文字,还能获取到标签
<body>
<div>hello world</div>
<script>
var obj = document.getElementsByTagName('div')[0];
obj.innerText = '你好世界';
</script>
2、JS书写要求
- 严格区分大小写
- 每一段代码写完分号结尾
- 不适用关键字命名
- 代码缩进,保持可读性
var是js定义变量的关键字
语法:
var 变量名(随意取) =document.获取方法(' ')[0];
变量名.方法=function{}( 变量名.方法() );
<p id='txt'>我是p段落</p>
<script>
//获取元素并复制给一个变量
var t = document.getElementById('txt');
//innerHTML innerText
t.innerHTML = '<h1>我是h1标签</h1>';
</script>
3、JS获取元素的方法
-
id:document.getElementById(' ');通过id获取元素 (唯一)
-
class:document.getElementsByClassName(' ');通过class名字获取元素(获取多个需索引)
-
TagName:document.getElementsByTagName(' '); 通过标签名获取元素 (获取多个需索引)
-
name:document.getElementsByName(' '); 通过name的属性获取元素,一般用于Input (获取多个需索引)
-
Selector:document.querySelector(' '); 通过css选择器获取第一个
document.querySelectorAll(' '); 通过css选择器获取所有
<body>
<div class="box" id="box1">我是第一个div</div>
<div class="box">我是第二个div</div>
<input type="text" name="hello" placeholder="请输入">
<script>
// id获取
// var Id = document.getElementById('box1');
// console.log(Id)
// Id.innerText = '我是第一个盒子,你看啊,我的内容变了'
// class获取 class取到的是全部,要改变当中的某个可以加上对应的索引
// var c1 = document.getElementsByClassName('box');
// console.log(c1);
// c1.innerText = '我要通过class去改';
// 标签名 标签名取到的是全部,要改变当中某个可以加上对应的索引
// var Name = document.getElementsByTagName('div')[0];
// console.log(Name)
// name获取 name取到的是全部,要改变当中某个可以加上对应的索引
// var myName = document.getElementsByName('hello')[0];
// console.log(myName);
// css选择器 querySelector取第一个 querySelectorAll取多个
// var Select = document.querySelector('.box');
// console.log(Select)
// var Select = document.querySelectorAll('.box');
// console.log(Select)
</script>
</body>
4、js单击事件
对象.onclick = function(){ this.innerText=' 我被点击了 '};
<body>
<div class="box"></div>
<script>
var oBox = document.getElementsByClassName('box')[0];
// console.log(oBox) 打印对象是否成功,控制台查看
oBox.onclick = function (){
// this代表当前这个对象,oBox
this.innerText = '好我被点击了';
};
</script>
</body>
5、js双击事件
对象.ondblclick = function (){ oBox.innerText = '我被双击了'};
<body>
<div class="box"></div>
<script>
var oBox = document.getElementsByClassName('box')[0];
// ondblclick 双击事件
oBox.ondblclick = function (){
oBox.innerText = '我被双击了';
};
</script>
</body>
6、鼠标划入划出事件
对象.onmouseenter = function (){ oBox.innerText = '鼠标划入; };
对象.onmouseleave = function (){ oBox.innerText = '鼠标划出'; }
<body>
<div class="box"></div>
<script>
var oBox = document.getElementsByClassName('box')[0];
// onmouseenter 鼠标划入
oBox.onmouseenter = function (){
oBox.innerText = '我进来啦';
}
// onmouseleave 鼠标划出
oBox.onmouseleave = function (){
oBox.innerText = '我又出去啦';
}
</script>
</body>
7、窗口变化
window.οnresize= function (){oBox.innerText = '窗口变化了'}
<body>
<div class="box"></div>
<script>
var oBox = document.getElementsByClassName('box')[0];
// console.log(oBox)
// onresize 窗口变化
window.onresize = function (){
console.log("我是窗口变化")
oBox.innerText = '窗口变化了'
}
</script>
</body>
8、下拉框
对象..onchange = function (){ console.log("哦豁,下拉框在变化") }
<body>
<select name="" id="">
<option value="">广州</option>
<option value="">深圳</option>
<option value="">惠州</option>
<option value="">东莞</option>
</select>
<script>
var sec = document.getElementsByTagName('select')[0];
// onchange 下拉框
sec.onchange = function (){
console.log("咦,下拉框在变化")
}
</script>
</body>
9、js修改样式
obj.style[变量]=变量值
对象.style.width='100px'
复合写法:对象.style.cssText = 'width:200px;height:200px;background:skyblue';
<style>
div{
width: 300px;
height: 300px;
background-color: pink;}
</style>
</head>
<body>
<div id="box"></div>
<script>
var oBox = document.getElementById('box');
// oBox.style.width = '100px';
// oBox.style.height = '100px';
// oBox.style.background = 'red';
oBox.style.cssText = 'width:200px;height:200px;background:skyblue';
// 修改边距
// oBox.style['margin-left'] = '50px';
// oBox.style.marginLeft = '100px'
//赋值修改样式
//var a = 'width'
//var b = '10px'
//oBox.style[a] = b
</script>
</body>
10、js修改属性
标签属性分为两种:合法属性、自定义属性
<body>
/*自定义属性,当其他属性不可用时用自定义的*/
/*xy="mochuan" 自定义一个属性名为mochuan*/
/*target="_blank"新建窗口打开;obj.target = '_self'当前窗口打开*/
<a href="https://www.baidu.com" id="myself" target="_blank" class="wrap" xy="mochuan">走你</a>
<script>
var obj = document.getElementById('myself');
// obj.target = '_self';
// console.log(obj.id)
// 修改属性
obj.className = 'suxing'
// 修改自定义属性 setAttribute 有则改,无则增
obj.setAttribute('xy','zdysuxing')
// 添加name属性为pppp
obj.setAttribute('name','pppp')
</script>
</body>
11、js数据类型
<body>
<script>
var a = 2
var b = 5.6
var c = [] /*数组*/
var d = {} /*字典*/
var e = true /*布尔值(小写)*/
var f = null /*空值*/
var g
alert(typeof a)/*弹出窗口显示什么类型*/
alert(typeof b)
alert(typeof c)
alert(typeof d)
alert(typeof e)
alert(typeof f)
alert(typeof g)
</script>
</body>
案例:根据属性和属性值修改盒子样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
form{
margin:20px 10px 20px 10px;
padding:10px;
}
div{
width:200px;
height:100px;
border:2px solid gray
}
</style>
</head>
<body>
<form action="" >
<p>属 性:<input type="text"></p>
属性值:<input type="text"><br>
<input type="button" value="设置">
</form>
<div>小荷才露尖尖角</div>
<script>
//获取盒子
var box = document.getElementsByTagName('div')[0];
console.log(box)
//获取所有input
var att = document.getElementsByTagName('input');
console.log(att)
att[2].onclick = function (){
var a = att[0].value;
var val = att[1].value;
console.log(a)
console.log(val)
box.style[a] = val;
}
</script>
</body>
</html>