JavaScript基础

(一)JS介绍

(1)JS作用与书写要求

作用:
如果把HTML比做一个人,那么CSS就是衣服,那JS就是指人的动作和行为
书写:
JS代码可以直接写在script标签里面,或者写在其他的.js后缀文件中,并通过script标签引入。注意:在引入js文件的script里面,一定不能写js代码。当然也可以在标签内写js代码,但是这种方式并不推荐。
要求:

  • 一般把script标签写在 head 或者 body 里
  • 要注意的是是否需要加上window.onload(代码从上往下运行,写在head时,不会获取到body中的元素,需要加载整个文档)
  • 如果没有特殊要求,一般script标签放在body结束之前
    在这里插入图片描述
    比如这个弹窗代码(alert):
<head>
    <meta charset="UTF-8">
    <title>js</title>

    <script>
        alert('头部的js代码')  // 弹窗
    </script>

</head>
<body>

</body>

在这里插入图片描述

<head>
    <meta charset="UTF-8">
    <title>js</title>

</head>
<body>
    <script>
        alert('body的js代码')  // 弹窗
    </script>
</body>

在这里插入图片描述

<body>
<!--     在引入js文件的script里面,一定不能写js代码-->
    <script src="../js/js1.js">
        alert('这是引用外部js文件当中的的js代码')  // 弹窗 js代码无效
    </script>
</body>

在这里插入图片描述

(二)JS获取元素

在js中想要操作元素,或者说执行一些行为,首先需要获取到对应的元素。才能进行下一步的操作,所以要首先学会如何获取元素。

(1)JS获取独有标签方法:

  • document . title 获取标题
  • document . head 获取头部信息
  • document . body 获取body内容
<head>
    <meta charset="UTF-8">
    <title>js</title>

</head>
<body>
<script>
    console.log(document)  //输出文档   console.log相当于python中的print
    console.log(document.title)  //文档 网页的标题
    document.title = '修改后的标题'   //‘js’改为‘修改后的标题’
</script>
</body>

在这里插入图片描述
获取body及head信息同理,另外还可以获取网页中body的文本及标签内容

  • document.body.innerText(网页的获取body的文本内容)
  • document.body.innerHTML(网页的获取body的标签内容)
<body>
这是body
<span>这是span标签</span>
<script>
    console.log(document.body.innerText)  //文档 网页的获取body的文本内容
</script>
</body>

在这里插入图片描述

<body>
这是body
<span>这是span标签</span>
<script>
    // console.log(document.body.innerText)  //文档 网页的获取body的文本内容
    console.log(document.body.innerHTML)  //文档 网页的获取body的标签内容
</script>
</body>

在这里插入图片描述
修改内容:
innerText

<body>
这是body
<span>这是span标签</span>
<script>
    console.log(document.body.innerText)  //文档 网页的获取body的文本内容
    document.body.innerText = '<h1>这是通过js修改后添加的h1标签</h1>'      //不会把h1解析成标签,依旧是内容
</script>
</body>

在这里插入图片描述
innerHTML

<body>
这是body
<span>这是span标签</span>
<script>
    console.log(document.body.innerHTML)  //文档 网页的获取body的标签内容
    document.body.innerHTML = '<h1>这是通过js修改后添加的h1标签</h1>'      //把h1解析为标签
</script>
</body>

在这里插入图片描述

(2)其他标签的获取

  • 通过id获取元素:document.getElementById(“idname”)
<body>
<p id="p1">关于中国</p>
<script>
    by_id = document.getElementById('p1')     //通过获取id获取元素并命名
    console.log(by_id.innerText)              //输出获取的元素
    by_id.innerText = '你好中国'               //将关于中国改为你好中国
</script>
</body>

在这里插入图片描述

  • 通过class获取元素:document.getElementsByClassName(“classname”)
<body>
<span class="sp1">张三</span>
<span class="sp1">李四</span>
<script>
    // 通过class获取元素
    by_class = document.getElementsByClassName('sp1')  // 获取后是数组对象object(列表) [span.sp1, span.sp1]
    console.log(by_class[0].innerText)                 // 是列表形式就可以按索引获取的单个元素
    by_class[0].innerText = '张三是男生'
    // by_class[1].innerText = '李四是女生'
</script>
</body>

在这里插入图片描述

  • 通过标签名获取元素:document.getElementsByTagName(“tagdem”)
<body>
<p id="p1">关于中国</p>
<span class="sp1">张三</span>
<span class="sp1">李四</span>
<script>

    // 通过标签名获取元素
    by_tag =  document.getElementsByTagName('p')  // 数组对象object(列表)
    console.log(by_tag[0].innerText)
    by_tag[0].innerText = '你好中国'
    
</script>
</body>

在这里插入图片描述

  • 表单中的元素:document.getElementsByName(“元素”)
<body>
<form action="#">
    性别:
    <input type="radio" name="sex" value="nan"><input type="radio" name="sex" value="nv"><input type="radio" name="sex" value="wu"></form>
<script>

    // 表单中的name
    by_name =  document.getElementsByName('sex')     //获取sex元素,数组形式
    console.log(by_name[0].value)                    //获取value值
    by_name[0].value = '男'                          //修改value值
    console.log(by_name[0].value)                    //修改之后获取值

</script>
</body>

在这里插入图片描述

  • selector选择器获取一个或所有
<body>

<p id="p1">关于中国</p>
<span class="sp1">张三</span>
<span class="sp1">李四</span>

<script>

    // selector选择器
    qs = document.querySelector('#p1')             //获取一个p标签
    console.log(qs)

    // qs_all = document.querySelectorAll('.sp1')     //获取所有span标签
    // console.log(qs_all)

</script>
</body>

在这里插入图片描述

(三)JS简单事件

所谓事件,是指JavaScript捕获到用户的操作,并做出正确的响应

<body>

<p id="p1">关于中国</p>
<span class="sp1">张三</span>
<span class="sp1">李四</span>

<script>
    /*
    左键单击 onclick
    左键双击 ondblclick
    鼠标移入 onmouseover/onmouseenter
    鼠标移出 onmouseout/onmouseleave
    */

    // 通过id获取元素
    p1 = document.getElementById('p1')

    // p1.onclick = function () {                //把需要做的事情写在函数当中
    //     p1.innerText = '你好中国'              //针对p1做文本修改的操作(单击后变为你好中国)
    // }

    // p1.ondblclick = function () {
    //     p1.innerText = '关于中国'              //双击后变为关于中国
    // }

    // p1.onmouseover = function () {
    //     // p1.style.cssText = 'color:red'      //鼠标移入后字体变为红色
    //     // 会保留之前的css样式
    //     p1.style['color'] = 'red'              //第二种格式
    // }
    //
    // p1.onmouseout = function () {
    //     // 不会保留样式,重置样式
    //     // p1.style.cssText = 'font-size:30px'    //鼠标移出后字体大小变为30px
    //     p1.style['font-size'] = '30px'            //第二种格式,加[]后移入移出会保留原来属性,即移出时字体也为红色
    //
    // }

</script>
</body>

(四)JS属性

<head>
    <meta charset="UTF-8">
    <title>js属性</title>
<!--    <style>-->
<!--        p{display: none;}-->         <!--消失-->
<!--    </style>-->
</head>
<body>

<p id="p1">关于中国</p>
<span class="sp1">张三</span>
<span class="sp1">李四</span>

<script>

        p1.onclick = function () {                //把需要做的事情写在函数当中
             p1.setAttribute('style','display: none')//针对p1做文本修改的操作(单击后消失)
    }
    // js属性
    // 获取元素属性
    // console.log(p1.getAttribute('id'));
    // 设置属性值
    // p1.setAttribute('id','pp')    //已有属性则修改
    // p1.setAttribute('style','display: none')        //没有属性则增加

    // 移除属性
    // p1.removeAttribute('id')

</script>
</body>

运行后对“关于中国”添加单击消失的样式。

(五)JS基本数据类型

在这里插入图片描述

<body>

<p id="p1">关于中国</p>
<span class="sp1">张三</span>
<span class="sp1">李四</span>

<script>

         p1 = document.getElementById('p1')

    // typeof
    // console.log(typeof zhangsan)  // undefined 未定义
    // console.log(typeof 123)  // number 数字
    // console.log(typeof '123')  // string 字符串
    // console.log(typeof true)  // boolean 布尔值
    // console.log(typeof false)  // boolean 布尔值
    // 对象 object
    // console.log(typeof p1)  // object 标签对象
    // console.log(typeof [1,2,3,4])  // object 数组对象
    // console.log(typeof null)  // object 空值对象
    // console.log(typeof {'a':1,'b':2})  // object 字典对象
         
</script>
</body>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值