Python全栈最全学习之路-WEB前端(四)

JavaScript入门

一、JavaScript介绍

1、JavaScript历史

在这里插入图片描述

2、JavaScript介绍

作用:
如果把HTML比做一个人,那么CSS就是衣服,那JS就是指人的动作和行为
书写:
JS代码可以直接写在script标签里面,或者写在其他的js后缀文件中,并通过script标签引入。注意:在引入js文件的script里面,一定不能写js代码,当然也可以在标签内些js代码,但是这种方式并不推荐。
要求:
1、一般把script标签写在head或者body
2、要注意的是是否需要加上window.onload
3、如果没有特殊要求,一般script标签放在body结束之前

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS获取元素的方法</title>
</head>
<body>
<div id="div1">
    <p id="p1">我是一个段落1</p>
    <p class="p2">我是一个段落2</p>
    <p class="p3" name="p4">我是一个段落3</p>
</div>
<script>
    // JS获取独有的标签
    // console.log(document.title);
    // = 赋值的意思,通常要用赋值的形式
    // console.log(document.title='这里可以更改');
    // console.log(document.head);
    // console.log(document.body);
    // 在修改别的标签,得用innerHTML(会解析标签),innerText(不会解析标签)
    // console.log(document.body.innerHTML = '<h1>hello the world</h1>');
    // console.log(document.body.innerText = '<h1>hello the world</h1>');
</script>
</body>
</html>

在这里插入图片描述

二、JS获取元素

1、JavaScript获取标签

意义:
在js中想要操作元素,或者说执行一些行为,首先需要获取到对应的元素。才能进行下一步的操作,所以要首先学会如何获取元素
JS获取独有标签:
document.title 获取标题
document.head 获取头部信息
document.body 获取body内容
其他标签的获取:
1、通过id获取元素:document.getElementById("idname");
2、通过class获取元素:document.getElementsByClassName("classname");
3、通过标签名获取元素:document.getElementsByTagName("tagdem");
4、表单中的name:document.getElementsByName("name");
5、selector选择器(不兼容IE7及以下)
document.querySelector("");通过CSS选择器获取一个
document.querySelectorAll("");通过CSS选择器获取所有

1、JS获取独有标签

独有标签
document.title
document.head
document.body

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>获取独有标签</title>
</head>
<body>
<script>
    // = 赋值的意思,通常要用赋值的形式
    console.log(document.title = '这个是修改标题');
    // document.head;
    // 在修改别的标签,得用innerHTML(会解析标签),innerText(不会解析标签)
    console.log(document.body.innerText = '<h1>hello the world</h1>');
    // document.body.innerHTML = '<h1>hello the world</h1>';
</script>
</body>
</html>

2、通过id获取元素-id

通过id获取
可以通过标签中的id来操作元素
document.getElementById("idname");

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>获取独有标签</title>
</head>
<body>
<div id="dv1">不笑运气差,一笑就脸大</div>
<script type="text/javascript">
    // = 赋值的意思,通常要用赋值的形式
    // console.log(document.title = '这个是修改标题');
    // document.head;
    // 在修改别的标签,得用innerHTML(会解析标签),innerText(不会解析标签)
    // console.log(document.body.innerText = '<h1>hello the world</h1>');
    // document.body.innerHTML = '<h1>hello the world</h1>';

    // var 定义变量,变量名不能是关键字,也不是保留字
    var oDv = document.getElementById('dv1')
    // alert(oDv)
    oDv.innerHTML = "不想听大道理,只想吃小雪糕。"
</script>
</body>
</html>

在这里插入图片描述

3、通过class获取元素

class
通过class也可以获取元素。但是这里要记住,获取得是多个标签,因此具体要操作哪一个标签,需要使用下标
document.getElementByClassName(“classname”);

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>获取独有标签</title>
</head>
<body>
<div id="dv1">不笑运气差,一笑就脸大
    <p class="box" id="p1">我是段落标签1</p>
    <p class="box" id="p2">我是段落标签2</p>
</div>
<script type="text/javascript">
    // = 赋值的意思,通常要用赋值的形式
    // console.log(document.title = '这个是修改标题');
    // document.head;
    // 在修改别的标签,得用innerHTML(会解析标签),innerText(不会解析标签)
    // console.log(document.body.innerText = '<h1>hello the world</h1>');
    // document.body.innerHTML = '<h1>hello the world</h1>';

    // var 定义变量,变量名不能是关键字,也不是保留字
    // var oDv = document.getElementById('dv1')
    // alert(oDv)
    // oDv.innerHTML = "不想听大道理,只想吃小雪糕。"
    var aBox = document.getElementsByClassName('box')
    // alert(aBox.length) // 打印长度
    // 当不唯一时,需要使用下标,下标从0开始
    aBox[0].innerHTML = '<b>谁还没个擅长的乐器呢!</b>'
</script>
</body>
</html>

在这里插入图片描述

4、通过标签名获取元素

tagName
通过class也可以获取元素
但是这里要记住,获取得是多个标签,因此具体要操作哪一个标签,需要使用下标
document.getElementByTagName("tagname");

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>获取独有标签</title>
</head>
<body>
<div id="dv1">不笑运气差,一笑就脸大
    <p class="box" id="p1">我是段落标签1</p>
    <p class="box" id="p2">我是段落标签2</p>
</div>
<script type="text/javascript">
    // = 赋值的意思,通常要用赋值的形式
    // console.log(document.title = '这个是修改标题');
    // document.head;
    // 在修改别的标签,得用innerHTML(会解析标签),innerText(不会解析标签)
    // console.log(document.body.innerText = '<h1>hello the world</h1>');
    // document.body.innerHTML = '<h1>hello the world</h1>';

    // var 定义变量,变量名不能是关键字,也不是保留字
    // var oDv = document.getElementById('dv1')
    // alert(oDv)
    // oDv.innerHTML = "不想听大道理,只想吃小雪糕。"
    // var aBox = document.getElementsByClassName('box')
    // alert(aBox.length) // 打印长度
    // 当不唯一时,需要使用下标,下标从0开始
    // aBox[0].innerHTML = '<b>谁还没个擅长的乐器呢!</b>'

    var aP = document.getElementsByTagName('p')
    // alert(aP.length)
    // 标签同样也是多个,也需要用下标去取
    aP[1].innerHTML = '<b>闹钟的作用大概就是,让我换个姿势继续睡。</b>'
</script>
</body>
</html>

在这里插入图片描述

5、selector选择器

selector
document.querySelector("");
通过CSS选择器获取一个
document.querySelectorAll("");
通过CSS选择器获取所有

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>获取独有标签</title>
</head>
<body>
<div id="dv1">不笑运气差,一笑就脸大
    <p class="box" id="p1">
        <i>我是段落标签1</i>
    </p>
    <p class="box" id="p2">
        <i>我是段落标签2</i>
    </p>
</div>
<script type="text/javascript">
    // = 赋值的意思,通常要用赋值的形式
    // console.log(document.title = '这个是修改标题');
    // document.head;
    // 在修改别的标签,得用innerHTML(会解析标签),innerText(不会解析标签)
    // console.log(document.body.innerText = '<h1>hello the world</h1>');
    // document.body.innerHTML = '<h1>hello the world</h1>';

    // var 定义变量,变量名不能是关键字,也不是保留字
    // var oDv = document.getElementById('dv1')
    // alert(oDv)
    // oDv.innerHTML = "不想听大道理,只想吃小雪糕。"
    // var aBox = document.getElementsByClassName('box')
    // alert(aBox.length) // 打印长度
    // 当不唯一时,需要使用下标,下标从0开始
    // aBox[0].innerHTML = '<b>谁还没个擅长的乐器呢!</b>'

    // var aP = document.getElementsByTagName('p')
    // alert(aP.length)
    // 标签同样也是多个,也需要用下标去取
    // aP[1].innerHTML = '<b>闹钟的作用大概就是,让我换个姿势继续睡。</b>'
    // 类似于CSS的选择器来选择,这里只会选择一个
    // var oPP = document.querySelector('#dv1 p')
    // oPP.innerHTML = '生活不仅有甜头,还有肉吃'
    // 选择所有,具体制定的时候,就需要用下标
    var aPP = document.querySelectorAll('#dv1 p')
    aPP[1].innerHTML = '<b>别对我大呼小叫,我小时候被狗吓过。</b>'
</script>
</body>
</html>

在这里插入图片描述

6、其他补充

补充
id前面必须是document,其他的前面可以是某个元素(id,document),但不能是集合

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>获取独有标签</title>
</head>
<body>
<!--<div id="dv1">不笑运气差,一笑就脸大-->
<!--    <p class="box" id="p1">-->
<!--        <i>我是段落标签1</i>-->
<!--    </p>-->
<!--    <p class="box" id="p2">-->
<!--        <i>我是段落标签2</i>-->
<!--    </p>-->
<!--</div>-->
<div id="box">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>
</div>
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
<script type="text/javascript">
    // = 赋值的意思,通常要用赋值的形式
    // console.log(document.title = '这个是修改标题');
    // document.head;
    // 在修改别的标签,得用innerHTML(会解析标签),innerText(不会解析标签)
    // console.log(document.body.innerText = '<h1>hello the world</h1>');
    // document.body.innerHTML = '<h1>hello the world</h1>';

    // var 定义变量,变量名不能是关键字,也不是保留字
    // var oDv = document.getElementById('dv1')
    // alert(oDv)
    // oDv.innerHTML = "不想听大道理,只想吃小雪糕。"
    // var aBox = document.getElementsByClassName('box')
    // alert(aBox.length) // 打印长度
    // 当不唯一时,需要使用下标,下标从0开始
    // aBox[0].innerHTML = '<b>谁还没个擅长的乐器呢!</b>'

    // var aP = document.getElementsByTagName('p')
    // alert(aP.length)
    // 标签同样也是多个,也需要用下标去取
    // aP[1].innerHTML = '<b>闹钟的作用大概就是,让我换个姿势继续睡。</b>'
    // 类似于CSS的选择器来选择,这里只会选择一个
    // var oPP = document.querySelector('#dv1 p')
    // oPP.innerHTML = '生活不仅有甜头,还有肉吃'
    // 选择所有,具体制定的时候,就需要用下标
    // var aPP = document.querySelectorAll('#dv1 p')
    // aPP[1].innerHTML = '<b>别对我大呼小叫,我小时候被狗吓过。</b>'

    var oBox = document.getElementById('box')
    // alert(oBox) //对于ID的获取,必须是document开头
    var aLi = oBox.getElementsByTagName('li')
    // alert(aLi.length)

    //获取元素,只要是一个确定的标签即可
    var aUl = document.getElementsByTagName('ul')
    var aLi = aUl[1].getElementsByTagName('li')
    alert(aLi.length)
</script>
</body>
</html>

三、JS基础事件

1、JS简单事件

含义:
所谓事件,是指JavaScript捕获到用户的操作,并做出正确的响应
使用:
在事件函数里面,有个一关键字this,代表当前发事件的这个元素
鼠标事件:
左键单击:onclick
左键双击:ondbclick
鼠标移入:onmouseover/onmouseenter
鼠标移出:onmouseout/onmouseleave

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS的基础事件</title>
    <style>
        .dv1{
            width: 200px;
            height: 200px;
            background: #D2691E;
        }
    </style>
</head>
<body>
<div class="dv1"></div>
<script>
    var aDv = document.getElementsByClassName('dv1')
    aDv[0].onclick = function(){
        aDv[0].innerHTML = '点击完成了'
        // this.innerHTML = '点击完成了' //this代表发生时间的元素
    }
    aDv[0].onmouseenter = function () {
        this.innerHTML = '鼠标移入'
    }
    aDv[0].onmouseleave = function () {
        this.innerHTML = '鼠标移出'
    }
</script>
</body>
</html>

在这里插入图片描述
事件通过函数完成,在函数内部书写自己想要实现的效果

四、JS修改样式

1、JS修改样式

解释:
js可以修改规范和不规范的标签的样式,也可以配合点击事件等一起使用
规范标签:
规范标签属性:.符号直接操作(可读可写)
不规范(自定义)的标签属性:
获取:.getAttribute()
设置:.setAttribute()
移除:.removeAttribute()
注意项:
1、所有的路径、颜色获取的结果不一定是你写的内容
2、通过id获取得元素赋值给变量后,假设修改了id,这个变量还是表示这个元素
3、自定义标签属性的操作方式,同样可以操作符合规范的标签属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS修改样式</title>
</head>
<body>
<a href="https://baidu.com" id="box" class="wrap" target="_blank"></a>
<script type="text/javascript">
    var oA = document.getElementById('box')
    // alert(oA.id) // 可读性:可以看到属性值
    // alert(oA.target)
    // alert(oA.className) // 查看class需要使用className才行
    oA.target = '_self' // 可写性:只要是规范的标签,都可写
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS修改样式</title>
    <style>
        .box{
            width: 200px;
            height: 200px;
            background: #87CEEB;
        }
    </style>
</head>
<body>
<!--<a href="https://baidu.com" id="box" class="wrap" target="_blank"></a>-->
<div class="box"></div>
<script type="text/javascript">
    // var oA = document.getElementById('box')
    // alert(oA.id) // 可读性:可以看到属性值
    // alert(oA.target)
    // alert(oA.className) // 查看class需要使用className才行
    // oA.target = '_self' // 可写性:只要是规范的标签,都可写
    var aBox = document.getElementsByClassName('box')
    // 获取标签之后,可以直接更改样式中的属性
    // aBox[0].style.background = 'red';
    // 也可以和响应事件组合起来用
    aBox[0].onclick = function () {
            // 使用cssText 可以同时修改多个
        aBox[0].style.cssText = "width: 300px; height: 300px; background: red;"
    }
    // 对于有-号连接的属性,改成驼峰命名的规则
    // aBox[0].style.marginLeft = '100px';
    aBox[0].style["margin-top"] = '100px';
    var mleft = "margin-left";
    aBox[0].style[mleft] = '100px';
    // style[]可以是变量也可以是字符串
</script>
</body>
</html>

在这里插入图片描述

五、JS基本数据类型

1、JS数据类型

number:
数字,在js里面的小数和整数统一都是数字。-2^53 ~ 2^53超出范围之后精度就会不准确
boolean:
布尔值(ture、false)
undefined:
未定义,一个变量声明之后没有复制就是undefined
string:
字符串
null:
空值,在js里面null属于对象类型,但是它不具有很多对象的共性,所以很多资料将他归为单一类的数据类型null
object:
对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS数据类型</title>
</head>
<body>
<script type="text/javascript">
    // var nu = 5;
    // var nu = -12.5;
    // var nu = 'this is string';
    // var nu = false;
    // var nu; // undefined
    // var nu = [1,23]; // 数组,字典都属于对象
    // alert(typeof nu); // typeof 查看类型
    var a = 1, b = 2;
    alert(a + b)
</script>
</body>
</html>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值