HTML基础之DOM操作

DOM(Document Object Model 文档对象模型)

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

以chrom为例,F12-console中输入document,可以通过document来定位元素

// 直接获取标签
document.getElementById('i1'); //获取id为i1的标签
document.getElementsByTagName('div'); //根据标签名称获得标签数组
document.getElementsByClassName('c1'); //根据class属性获取标签的数组 
document.getElementsByName('xx'); //根据name属性获取标签数组
id和class比较常用  
// 间接获取标签-当标签没有id、class直接定位时,要用到间接定位:分析html目标标签和当前标签的关系,屡清楚寻找路径 var tmp=document.getElementById('h-test'); //定义一个变量tmp tmp.parentElement; // 父节点标签元素 tmp.children; //所有子标签 tmp.firstElementChild; //拿到当前对象的第一个子标签元素 tmp.lastElementChild; // 拿到当前对象的最后一个子标签元素 tmp.nextElementSibling; //下一个兄弟标签元素

  文本操作:

innerHTML与innerText
 
var tmp=document.getElementById('inner1');
tmp.innerText; // 获取标签中的文本内容 
tmp.innerText='重新赋值'; //更改标签内文本内容(能获取到就能修改) 
tmp.innerHTML; // 获取标签中的所有内容,包含html代码 
tmp.innerHTML = '<a href="http://www.baidu.com">ddd</a>' // innerHTML 可以将含有HTML代码的字符串变为标签 
两者区别:
 element.innerText='<a href="http://www.baidu.com">跳转到百度</a>' #inner1的位置显示输入百度链接内容(字符串)  
 element.innerHTML='<a href="http://www.baidu.com">跳转到百度</a>' ####显示跳转到百度(可跳转的链接)

input、textarea标签 
tmp.value; //获取input、textarea参数 
tmp.value = '内容' // 对input、textarea的内容进行赋值 

select标签 tmp.value; //获取select标签的value参数 tmp.value = '选项' // 修改select选项 tmp.selectedIndex; // 获取select标签的选项下标 tmp.selectedIndex = 1 // 通过下标更改select的选项

  操作样式

 

var tmp=document.getElementById('clst')
tmp.className = 'c1'; // 更改标签class属性 只能有一个class属性
tmp.classList;// 获取样式数组
tmp.classList.add('aaa'); //添加样式 数组
tmp.classList.remove('aaa'); //删除样式
tmp.checked; //获取checkbox的状态 true为勾选
 
操作style属性
e.style.xxx //操作样式的粒度更加细化,操作单个样式属性,相当于在标签中增加一个style属性
e.style.display='none' //隐藏某一个元素 e.style.backgroundColor=blue // 例:在css中样式可以通过【-】进行连接,在JavaScript中,所有的【-】都被去掉,【-】后面的第一个字符大写

 操作属性

setAttribute(key,value) //设置属性,在标签中添加属性或自定义属性;例添加placeholder属性r.setAttribute('placeholder','请输入密码')
removeAttribute(key) //删除属性,在标签中删除指定属性
attributes //获取标签的所有属性

  创建标签

var  input =document.createElement('input')
input
var c = document.getElementById('create')
c.appendChild(input)
字符串方式创建标签
 
insertAdjacentHTML(where, tagStr) //父级标签内或外添加一个子、兄标签 
beforeBegin //插入到获取到标签的前面
afterBegin //插入到获取到标签的子标签的前面 
beforeEnd //插入到获取到标签的子标签的后面
afterEnd //插入到获取到标签的后面

举例:
var str='<input type="text" value="666">'

var c=document.getElementById('create1')
c.insertAdjacentHTML('beforeBegin',str)  
c.insertAdjacentHTML('beforeEnd',str)  //插入至获取到的标签的子标签的后面

  

 

  

posted @ 2019-12-06 19:18  哈哈一笑~~~  阅读(251)  评论(0编辑  收藏  举报