day10-2 DOM操作

DOM(document object model  文档对象模型)  通过dom获取的元素就一定能修改

一个web页面的展示,是有html标签组合的一个页面,dom对象实际就是将html标签转换成了一个文档对象。可以通过dom对象中js提供的方法,找到html的各个标签。通过找到标签就可以操作标签使页面动起来,让页面动起来。

目的:
操作页面上的任意的一个标签

在网页中 按F12 .找到console 。在里面输入document,然后回车。document下就代表整个页面。

1.直接获取标签

document.getElementById('inner1')  通过id精准定位

document.getElementsByClassName("inner")通过class进行定位,不是唯一,可定位多个

在js中定义一个变量用var 去定义一个变量

文本操作内容

var el =document.getElementById('inner1')  

el.innerText el.innerHtml

1.innerText、innerHtml: 只是打印标签内的文本信息,HTML代码会被省略。innerHtml则全部打印。修改时,通过innnerText只会变为一个字符串,通过innerHtml则可以变为一个标签

el.innerText='<a href="http://www.baidu.com">跳转到百度</a>'    传什么进去都是文本展示出来。

el.innerHTML='<a href="http://www.baidu.com">跳转到百度</a>'  innerHtm会自动去解析符合html标签规则的。

------------------------------

2.间接获取标签:

el.parentElement       //父节点标签元素                    el.children  //所有子标签   el.children[1] 拿到改标签下的第二个标签el.children[1] .value=123   把输入框的内容写为123.

el.firstElementChild  // 第一个子标签元素                                    el.lastElementChild  // 最后一个子标签元素

el.nextElementSibling   //  下一个兄弟标签元素                                    el.previousElementSibling   // 上一个兄弟标签元素

3.获取到标签后,可以改变值通过value。对 标签 input   select。

innerText   innerHtml 去改变标签内的值。

select框的默认值。

 

 -------------------------------------------------------------------

1.操作属性(setAttribute   removeAttribute)

2.操作样式表,操作标签的class属性。前提有样式表(className=‘inner tmp1’      classList.add()  classList.remove())

3操作style,实际操作的是标签的style属性,随便弄。(e.style.xxx)

4.创建标签(对象创建  obj=createElemet(‘input’) obj.setAttribute()   添加目标元素中,实际是添加子元素,先定位父元素  父元素.appendChild()                        字符串创建 str='<input>'  insertAdjacentHTML(where,str))

操作样式

className: 字符串形式的class名
classList: 列表形式的class名
add(): 对列表的样式进行增加
remove(): 对列表的样式进行删除          el.classList.remove('tmp2')

 

 更加细化的去操作样式

el.style.display='none'  代表隐藏某一个元素。复原出来   el.style.display='block'

el.style.backgroundColor='red'  el.style.width='20px'

style.xxx: 操作样式的粒度更加细化,操作单个样式属性,相当于在标签中增加一个style属性

--------------------------------------------------

 

操作标签属性:

setAttribute(key,value): 设置属性,在标签中添加属性或自定义属性
removeAttribute(key): 删除属性,在标签中删除指定属性
attributes: 获取标签的所有属性

 

 -------------------------------------------

创建标签:

createElement(tagName): 通过DOM创建一个标签对象
appendChild(tagObj): 在父级标签内添加一个子标签对象

 

 同时可以直接定义一个字符串去定义为标签,去创建标签

var str="<input type='text' value=123>"

insertAdjacentHTML(where,tagStr): 父级标签内添加一个子标签字符串
beforeBegin: 插入到获取到标签的前面
afterBegin: 插入到获取到标签的子标签的前面
beforeEnd: 插入到获取到标签的子标签的后面
afterEnd: 插入到获取到标签的后面

 ----------------------------------------------------

js的程序语言

  js是脚本语言

script标签主要用来写js代码,或者引入js的文件。  导入script的位置可以在head中也可以在boday中,由于代码从上往下执行,在head中可能会卡在这里,影响用户体验。

导入的script的位置一般都放在</body>的前面     

 

 

 

 --------------------------------------

写个简单的登录.if..else条件判断。

在js中  1==1和1=='1'是没有区别的,只判断值,不判断类型。要想判断类型得输入1===1.

 

 ---------------------

js中的for循环。两种写法。

可以循环数组,也可以 循环字符串 var s='你是以'          也可以循环字典,字典循环只能用第一种方法  var d={'name':'gss','age':18}

while (1==1){} 循环和python一样

swith判断:

 

 ----------------------------

 匿名函数

基本函数是:function   f(){}    f()

 

 ---------------------------

声明变量

const   age=15 ;age=14会报错,常量是不能被修改的,也没有预解析

let age=100  let声明的变量没有预解析

var age=100  var 声明的变量有预解析

 

 ------------------------

 

 

posted @ 2019-12-05 22:58  戒七  阅读(161)  评论(0编辑  收藏  举报