javascript

目录

一、javascript引入方式

1.内嵌

2.外引

二、javascript基础语法

1.定义变量

2.变量使用

一、基本类型

1.字符串 " "  ' '

2.数字

3.布尔类型

4.undefined类型

5.null

二、复合类型

1.数组   [ ] 通过下标进行访问

2.类型  {key:value}  访问:对象.属性

3.函数 

(1)命名函数

(2)匿名函数

三、函数调用与交互

1.打印

2.事件

四、dom操作

1.查找

2.修改

(1)改内容

(2)改属性

①.原生属性

②.自定义属性

(3)改样式

①obj.style.属性名="属性值"

②obj.className="class值"

3.添加

(1)创建元素

①新创建元素createElement()

②复制元素cloneNode()

(2)添加元素

①在子元素的最后一个位置添加   appendChild()

②在某个元素后面添加   

③在某个元素前面添加  insertBefore(新元素,某元素)

④把某个元素替换掉  replaceChild(新元素,某元素)

 4.删除

(1)直接找

(2)通过关系找



一、javascript引入方式

javascript有两种引入方式:

1.内嵌

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    
    <script>
        alert("demo")
    </script> 

</head>
<body>
    <div>hello</div>
</body>
</html>

运行结果:

 

2.外引

在html里面加入要引用的js

<script src="js/javascript.js"></script>

二、javascript基础语法

1.定义变量

var 变量名=值

var aa="demo"
var bb=10
var cc=10.8

2.变量使用

(直接用变量名)使用时有类型

变量类型:

一、基本类型

1.字符串 " "  ' '
var aa="demo"
var bb='d'
2.数字
var aa=10
var bb=10.2
3.布尔类型
var aa=true
var bb=false
4.undefined类型

声明了,但是没有赋值

var aa
console.log(aa)

5.null

二、复合类型

1.数组   [ ] 通过下标进行访问
var arr=["demo",10,10.2,true,undefined,null,["hello",20],{
    name:"张三",
    age:10,
},function f(a,b){
    console.log(a)
    console.log("数组里的命名函数执行了")
},function (a,b){
    console.log(b)
    console.log("数组里的命名函数执行了")
}]
console.log(arr)
console.log(arr[6])
console.log(arr[6][0])
console.log(arr[8])
console.log(arr[9])
arr[8](10,20)
arr[9](10,20)

2.类型  {key:value}  访问:对象.属性
var obj={
    name:"张三",
    age:18,
    sex:"男",
    play:["篮球","足球"],
    wife:{
        name:"李四",
        age:20,
    },
    child:[{
        name:"小张",
        age:"女",
    },{
        name:"小王",
        age:20,
    }],
    eat:function f(a,b){
         console.log(a)
         console.log("对象里的命名函数")
     },
     run:function(a,b){
         console.log(b)
         console.log("对象里的匿名函数")
     }
}
console.log(obj)
console.log(obj.age)
console.log(obj.wife)
console.log(obj.wife.name)
console.log(obj.child)
console.log(obj.play[0])
console.log(obj.eat)
console.log(obj.run)
obj.eat(10,20)
obj.run(10,20)

3.函数 
(1)命名函数

function  方法名(需要传的参数){函数体}

function f(a,b){
     console.log(a)
     console.log(b)
     console.log("命名函数函数执行了")
}

调用: 方法名()

f(10,20) 

(2)匿名函数

var 变量名=function(需要传的参数){函数体}

var aa=function(a,b){
     console.log(a)
     console.log(b)
     console.log("匿名函数执行了")
 }

调用: 变量名() 

aa(10,20)

三、函数调用与交互

1.打印

console.log(document)//以标签形式打印

console.dir(document)//以对象形式打印

2.事件

var aa=function(a,b){

     console.log(a)

     console.log(b)

     console.log("事件执行了")

}

点击事件  onclick

调用:

document.οnclick=aa

传参:,(绑事件不能传参,用下面这种方法传参)

 document.οnclick=function(){

     aa(12,10)

 }

点击事件

onclick

双击事件

ondblclick

鼠标放上去触发

onmouseenter

鼠标离开触发

onmouseleave

四、dom操作

让对象和元素做一一映射

1.查找

查找方式方法返回
根据id值获取元素getElementById()返回符合条件的第一个对象
根据class值获取元素getElementsByClassName返回符合条件的所有对象组成的数组
根据元素名称获取元素getElementsByTagName返回符合条件的所有对象组成的数组
根据选择器获取元素querySelector返回符合条件的第一个对象
根据选择器获取元素querySelectorAll

返回符合条件的所有对象组成的数组

 根据关系获取元素:

找父级元素

parentElement

parentNode

找孩子

childNodes

要文本

children

不要文本,只有元素

找第一个孩子

firstChild

要文本

firstElementChild

不要文本,只有元素/标签

找最后一个孩子

lastChild

要文本

lastElementChild

不要文本,只有元素/标签

找上一个孩子

previousSibling

要文本

previousElementSibling

不要文本,只有元素/标签

找下一个孩子

nextSibling

要文本

nextElementSibling

不要文本,只有元素/标签

2.修改

(1)改内容

innerText当前修改的内容当作文本来处理
innerHTML当前修改的内容当作标签来处理
value修改input的值

(2)改属性

①.原生属性

对象.属性=值

②.自定义属性

 setAttribute("属性名","属性值") 

setAttribute(属性名)获取

(3)改样式

①obj.style.属性名="属性值"

obj.style.background="red"

obj.style.color="yellow"

obj.style.fontSize='50px'

连起来写

obj.style.cssText="background:red;color:pink;font-size:20px;"

②obj.className="class值"

obj.className='ac'

3.添加

(1)创建元素

①新创建元素createElement()
var newNode=document.createElement("div")
②复制元素cloneNode()

需要传参,参数是true/false     true(连内容一起复制)/false(浅复制,只复制外壳)

var oldNode= document.getElementById("bb")

var newNode=oldNode.cloneNode(true)

(2)添加元素

①在子元素的最后一个位置添加   appendChild()
var container=document.getElementById("aa")

container.appendChild(newNode)
②在某个元素后面添加   
var flag=document.getElementById("test")

flag.appendChild(newNode)
③在某个元素前面添加  insertBefore(新元素,某元素)
var container=document.getElementById("aa")
var flag=document.getElementById("test")
container.insertBefore(newNode,flag)
④把某个元素替换掉  replaceChild(新元素,某元素)
var container=document.getElementById("aa")
var flag=document.getElementById("test")
container.replaceChild(newNode,flag)

运行:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    
    

</head>
<body>

    <ul id="bb" style="background-color: antiquewhite;">
        <li>h3前面加 hello</li>
        <li>hello</li>
    </ul>
    <ul id="cc" style="background-color:aquamarine">
        <li>把span替换掉 hello</li>
        <li>hello</li>
    </ul>

    <div id="aa">
        <p id="hh">p hh</p>
        <h3 id="test">h3 test</h3>
        <span id="demo">span demo</span>
     </div>

     <script>
        // (1)新创建元素createElement
        var newNode1=document.createElement("div")
        console.log(newNode1)
        var newNode2=document.createElement("div")
        // 加点内容
        newNode1.innerText='在子元素的最后一个位置添加新元素1'
        newNode1.className='blue'
        newNode1.setAttribute("index","aaaa")
        newNode1.style.color="red"

        newNode2.innerText='在p后面添加新元素2'
        newNode2.style.color='pink'
        // (2)复制元素cloneNode() ,需要传参,true(连内容一起复制)/false(浅复制,只复制外壳)
        var oldNode1= document.getElementById("bb")
        var newNode3=oldNode1.cloneNode(true)

        var oldNode2= document.getElementById("cc")
        var newNode4=oldNode2.cloneNode(true)



        // (1)在子元素的最后一个位置添加 appendChild
        var container=document.getElementById("aa")
        container.appendChild(newNode1)
        // (2)在p后面添加
        var flag1=document.getElementById("hh")
        flag1.appendChild(newNode2)
        //  (3)在h3前面添加
        var flag2=document.getElementById("test")
        container.insertBefore(newNode3,flag2)
        // (4)把span替换掉
        var flag3=document.getElementById("demo")
        container.replaceChild(newNode4,flag3)
    </script>
</body>
</html>

结果:

 4.删除

找他的父级元素,父级元素调用removeChild()

找父级元素:

(1)直接找

var container=document.getElementById("aa")

var flag=document.getElementById("test")

container.removeChild(flag)

(2)通过关系找

var flag=document.getElementById("test")

var container=flag.parentElement

container.removeChild(flag)

运行:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    
    

</head>
<body>
    <div id="aa">
        <p id="hh">hh</p>
        <h3 id="test">test</h3>
        <span id="demo">demo</span>
     </div>

     <script>
            //删除  找他的父级元素,父级元素调用removeChild()
            //  找父级元素:
            // (1)直接找 
            var container1=document.getElementById("aa")
            var flag1=document.getElementById("test") 
            container1.removeChild(flag1)
            //(2)通过关系找
            var flag2=document.getElementById("demo")
            var container2=flag2.parentElement
            container2.removeChild(flag2)
    </script>
</body>
</html>

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值