美文网首页
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前端

    1 基础语法(对象) 1.1什么是对象 对象-和python中的对象一样,拥有对象属性和对象方法 1.2创建对象 ...

  • day26-web前端

    13 事件冒泡和捕获 在子标签上发生的事件会传递给父标签,若要阻止可使用事件.stopPropagation() ...

  • 前端文章系列

    【前端】从0.1开始,创建第一个项目 【前端】初识HTML 【前端】HTML标签 【前端】HTML属性 【前端】C...

  • Web前端小白入门指迷

    大前端之旅 大前端有很多种,Shell 前端,客户端前端,App 前端,Web 前端和可能接下来很会火起来的 VR...

  • 推荐几个好的前端博客和网站

    前端开发博客前端开发博客-前端开发,前端博客 对前端知识结构的理解人类身份验证 - SegmentFault 脚本...

  • 2020-04-11

    前端工程化相关 前端动画相关 优化前端性能

  • Web前端

    Web前端 web前端是什么- 定义 职责 web前端基础知识和学习路线 web前端学习的资源 1.Web前端是...

  • 2018-05-16

    web前端开发 什么是web前端 web前端开发也戏称“web前端开发攻城狮”,目前这个职位也叫“大前端”。这个职...

  • 前端学习:一个好的前端导航可以更好的学习前端

    前端导航: 前端网课(前端的网络课程,在线网站) 前端资源(有论坛等交流平台) 前端手册(html手册,css手册...

  • 2018-09-25

    前端学习 前端技术一般分为前端设计和前端开发,前端设计一般可以理解为网站的视觉设计,前端开发则是网站的前台代码实现...

网友评论

      本文标题:day26-web前端

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