美文网首页
day26-web前端

day26-web前端

作者: barriers | 来源:发表于2018-12-10 23:34 被阅读0次

    1 基础语法(对象)

    1.1什么是对象

    对象-和python中的对象一样,拥有对象属性和对象方法

    1.2创建对象

    创建对象字面量
    对象字面量:{属性名1:属性值,属性名2:属性值}
    注意:当属性值是普通值我们叫这个属性为对象属性;当属性值是函数时,这个属性就是对象方法

    p1={name:'老王',age:10,eat:function(){Console.log('吃饭')}}
    

    通过构造方法创建对象
    声明构造方法(类似python声明类)-声明一个函数,使用函数名来模拟类名,在函数中通过this关键字来添加对象属性和对象方法
    构造方法的函数名,首字母大写
    this类似python中的self
    通过构造方法创建对象
    对象=new 构造方法()

    function Person(name='张三',age=18,sex='女'){
        this.name=name
        this.age=age
        this.sex=sex
        //添加对象方法
        this.eat=function(food){
            console.log(this.name+'在吃'+food)
        }
        //返回对象
        return this
    }
    //创建person对象
    p3=new Person()
    p4=new Person('小明')
    

    函数中this关键字
    当调用函数的时候前面加关键字new,就是这个函数当成构造函数创建对象,函数中的this就是当前对象;
    直接调用函数的时候,函数中的this是window对象

    1.3使用对象属性

    a.对象.属性
    b.对象[属性名]

    var t='age' 
    p5=new Person('小花',20,'女')
    console.log(p5.name,p5['sex'],p5[t])
    

    1.4修改对象属性的值

    属性存在的时候是修改,不存在的时候就是添加
    对象.属性=值
    对象[属性名]=值
    给对象添加属性只作用于一个对象,不影响其他对象
    构造方法名(类名).prototype.属性=值 给指定构造方法创建的所有的对象都添加指定的属性

    Person.prototype.aaa='123'
    console.log(p5.aaa)
    

    创建学生类,并对其按分数进行排序

    function Student(name,age,score){
        this.name=name
        this.age=age
        this.score=score
        return this
    }   
    s1=new Student('小明',18,88)
    s2=new Student('小王',15,98)
    s3=new Student('小法',16,77)
    students=[s1,s2,s3]
    //sort方法排序后,原数组会改变,也会产生新的数组
    new_students=students.sort(function FUN(a,b){
            return a.score-b.score})
    console.log(students)
    

    2 DOM获取节点

    2.1什么是DOM(文档对象模型)

    DOM是document object mode的缩写
    DOM模型就是一个树结构,里面是由各种节点组成

    2.2document对象

    document对象是js中写好的一个对象,代表的是网页内容结构,代表的是网页的内容结构
    通过document对象可以拿到网页中所有内容对应的节点

    2.3获取节点(在js中获取网页中的标签)

    2.3.1通过标签的id获取

    通过标签的id值来获取指定的标签
    document.getElementById(id值) -返回节点对象
    如果html中同样的id对应的标签有多个,只能取一个。所以一般在使用id的时候id要唯一

    var pNode=document.getElementById('p1')
    console.log(pNode)
    

    2.3.2通过标签名来获取

    document.getElementsByTagName(标签名) - 返回的是一个数组,数组中是节点

    var aNodeArray=document.getElementsByTagName('a')
    console.log(aNodeArray)
    for(x in aNodeArray){
        拿到aNodeArray对象中的所有属性,这儿除了a标签以外还有length,item等其他非标签对象
        aNode=aNodeArray[x]
        console.log(x,aNode)
        只对标签进行操作
        aNode=aNodeArray[x]
        if(typeof(aNode)=='object'){
            console.log(aNode,'是标签')
        }
    }
    

    2.3.3通过类名来获取

    document.getElementsByClassName(类名)-获取所有class属性值是指定的值的标签,返回的是一个数组对象

    var c1NodeArray=document.getElementsByClassName('c1')
    console.log(c1NodeArray)
    

    2.3.4通过name属性的值获取(了解)

    console.log(document.getElementsByName('username'))- 返回一个节点数组对象

    console.log(document.getElementsByName('username'))
    

    3DOM间接获取节点

    3.1获取父节点

    子节点.parentElement - 获取子节点对应的父节点

    <body>
        <div id="box1">
            box1
            <div id="box11">div11</div>
            <div id="box12">div12</div>
            <div id="box13">div13</div>
        </div>
    </body>
    var box11Node=document.getElementById('box11') //获取节点
    var box1Node=box11Node.parentElement //获取父节点法一
    var box1Node2=box11Node.parentNode //获取父节点法二
    console.log(box1Node,box1Node2)
    

    3.2获取子节点

    a.获取所有的子节点
    父节点.children-返回一个数组对象

    var allChild=box1Node.children
    console.log(allChild)
    

    父节点.childNodes - 获取父节点下所有的内容(包括子节点和文本)

    var allChird2=box1Node.childNodes
    console.log(allChird2)
    

    b.获取第一个字节点
    父节点.firstElementChild

    var childNode=box1Node.firstElementChild
    console.log(childNode)
    

    c.获取最后一个子节点
    父节点.lastElementChild

    var childNode2=box1Node.lastElementChild
    console.log(childNode2)
    

    4创建添加和删除节点

        获取节点
    var pNode=document.getElementById('p1')
    获取标签内容
    var content=pNode.innerHTML
    修改标签内容
    pNode.innerHTML='我不是段落'
    获取标签样式中的文字颜色
    var pColor = pNode.style.color;
    修改标签样式
    pNode.style.color = 'salmon'
    pNode.style.fontSize = '30px'
    

    4.1 创建节点

    document.createElement(标签名) - 创建指定标签节点(创建后不会自己添加到浏览器上)
    标签节点就是标签对象,可以通过document去网页中获取到,也可以自己创建
    a.节点属性
    标签对象中有相应的标签相关的属性,可以通过标签节点获取或者修改这些属性值
    例如,a标签节点有:href属性,id属性,className属性,style属性等
    img标签节点有:src属性,id属性,style属性,alt属性,title属性等
    b.innerHTML和innerText属性
    innerHTML-双标签的标签内容(包含其他标签)
    innerText-双标签的标签内容(侧重只有文字)

    创建一个div标签对象
    var divNode=document.createElement('div')
    divNode.innerText='写的都是什么鬼玩意儿'
    创建一个img标签对象
    var imgNode=document.createElement('img')
    imgNode.src='img/a1.jpg'
    

    4.2添加节点

    a.在指定的标签中的最后添加一个节点
    父节点.appendChild(需要添加的节点)

    var div1Node=document.getElementById('div1')
    div1Node.appendChild(divNode)
        创建并添加一个节点的函数
    function addDiv(){
        var divNode=document.createElement('div')
        div1Node.innerText='111'
        div1Node.appendChild(divNode)
    }
    

    b.在指定的节点前插入一个节点
    父节点.insertBefore(新节点,指定节点) -- 在父节点中的指定节点前插入指定的节点

    div1Node.insertBefore(imgNode,div1Node.firstChild)
    

    4.3删除节点

    父节点.removeChild(子节点) - 删除父节点中指定的子节点

    div1Node.removeChild(imgNode)
    div1Node.removeChild(div1Node.lastChild)
    

    4.4清空标签(删除所有的子标签)

        删除父标签中所有的子节点
    div1Node.innerHTML=null
        节点.remove()-将节点从浏览器中删除
    div1Node.remove()
    

    删除一个标签的函数

    function close1(){
        var adNode=document.getElementById('ad')
        通过父标签删除
        adNode.parentNode.removeChild(adNode)
        直接删除
        adNode.remove()
        将要删除的标签隐藏(未删除)
        adNode.style.display='none'
    }
    

    产生随机数
    Math.random()-产生随机数0~1(小数)
    parseInt()-转换成整数
    parseFloat()-转换成小数

    相关文章

      网友评论

          本文标题:day26-web前端

          本文链接:https://www.haomeiwen.com/subject/pxvdhqtx.html