一:Javascript:弱类型脚本语言,是一种动态类型。实现部分动画效果和用户交互等
-- html是骨架(页面结构) css样式 js是行为 --
弱类型体现:
JS代码可以写在body,head中。
如果需要写在body中,但有需要它最后执行 可以先加上window.onload=function(){ alert(1)}
<head>
<script>
window.onload = function(){
alert(1)
}
</script>
</head>
<body>
<script>
alert(2);
console.log("haha");
</script>
</body>
效果 先弹出 2 ,在打印 haha 到控制台 最后弹出 1
类似css的三种样式,行内,元素内,外链
1.行内
<body>
<!--1.行内 单击时弹出窗口 显示 1-->
<div onclick="alert(1)"></div>
</body>
效果
2.元素内
<body>
<!--2.script标签内-->
<script>
alert(2);
console.log("打印在控制台");>
</script>
</body>
效果:先弹窗 2 ,点击确定在 打印到控制台console
3.外链
<body>
<script src="new.js"></script>
</body>
new.js
alert("我先")
console.log("haha")
效果 : 先出现弹窗 再 打印log haha
定义变量
<body>
<script>
var a=1; // number
var b=1.1; // number
var c="haha"; // string
var x=10,y=11; //同时设置多个值
alert(typeof(a)); // 弹出 a 的类型
alert(x+y) // 弹出 x+y的值
</script>
</body>
可以先定义变量名 不给值 占位 ,需要用它的值再赋值
</script>
var d,f;
d=1;
f=2;
alert(d*f);
</script>
二:获取元素
1.获取独立的标签 document+标签=" 赋值的内容"
document.title=
document.body.innerHTML="将值赋给了整个body,body拥有的其他内容就没了"
document.body.innerHTML+="消除方法 += 。新增加内容"
innerHTML能够解析标签: 将内容加粗 斜体
document.body.innerHTML+="<em><b>消除方法 += 。新增加内容</b></em>"
innerTEXT不能解析标签: 会将加粗斜体标签当作内容显示在浏览器上
document.body.innerHTML+="<em><b>消除方法 += 。新增加内容</b></em>"
<body>
<script>
document.title="改变标题" // 只有title 这样写
// document.body = "body网页上显示的内容" // 报错,除title以外,body后面还得加上innerHTML
// document.body.innerHTML = "body网页上显示的内容" // 将值赋给了整个body,body拥有的其他内容就没了
document.body.innerHTML += "body网页上显示的内容" // 消除方法 += 。新增加内容
</script>
</body>
2.通过id获取元素 document.getElementById
<style>
* {
margin: 0;
padding: 0;
}
div{
width: 100px;
height: 100px;
background: red;
}
</style> </body>
<div id="box1" title="h">我是div</div> /*这儿的title是 鼠标移到div上会显示的内容是h*/
<script>
document.getElementById("box1").innerText="通过id获取元素在改变的"
</script>
</body>
效果 改之前 之后
3.通过标签名获取Tagname, 多个p标签 需要加下标
document.getElementsByTagName("p")
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
* {
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<script>
// 通过标签名获取 Tagname 多个p标签 需要加下标
// document.getElementsByTagName("p");
var oP=document.getElementsByTagName("p");
// 查看有几个元素
alert(oP.length); // 弹出窗口显示4 代表有四个P
// 通过下标该值 改第一个P
oP[0].innerHTML+="第一个p";
</script>
</body>
</html>
效果
4.通过classname
// 通过classname
var oClassname=document.getElementsByClassName("box2");
alert(oClassname.length)
oClassname.innerHTML[0]="dff";
</script>
5.通过选择器
<div class="box2">
<p class="p1">1</p>
<p class="p1">2</p>
<p class="p1">3</p>
<p>4</p>
</div>
<1>.// querySelector只选中一个元素
document.querySelector(".box2>.p1").innerHTML="<b>1</b>" // 选择第一个p1
<2>.// querySelector选中多个元素 通过下标选择
oCls=document.querySelectorAll(".box2 .p1");
alert(oCls.length) // 3 p1
oCls[1].innerHTML="改了吗" // 改下标为1的值 第二个p1
三:write方法 有两种情况
<div>
测试write
</div>
<script>
// 1.在文档流关闭之前写入
document.write("在文档流关闭之前写入")
</script>
效果:write之前 之后 新增内容
2.在文档流关闭之后写入
<script>
// 2.在文档流关闭之后写入
window.onload=function () {
document.write("在文档流关闭之后写入")
}
</script>
效果 修改了整个html的内容,只剩下写入的内容了