目录
一、DOM操作
DOM 是 Document Object Model(文档对象模型)的缩写。
所有的DOM Element可以点击访问。
DOM操作名称 | 方法 | 描述 |
---|---|---|
(1)获取元素 | ||
通过ID | document.getElementById(); | 得到一个元素 |
通过标签 | 父级.getElementsByTagName(); | 数组 |
通过class | 父级.getElementsByClassName(); | 获取到元素数组,IE8及以下不支持 |
通过css选择器 | 父级.querySelector() | 得到一个元素,IE7及以下不支持 |
父级.querySelectorAll() | 获取到元素数组,IE7及以下不支持 | |
(2)增加元素 | ||
添加节点 | para.appendChild(node); | 向para添加子节点node |
(3)创建节点 | ||
创建元素 | var para=document.createElement(“p”); | 在document中创建p标签元素 |
创建文本节点 | var node=document.createTextNode(“这是新段落。”); | 在document中创建文本节点 |
(4)移除元素 | ||
删除节点 | parent.removeChild(child); | 父元素删除子节点 |
(5)获取元素的样式 | ||
获取行间样式 | element.style.styleName | 获取行间样式,不能获取css样式表中的样式 |
获取样式表中的样式 | element.currentStyle.styleName | 返回的值有单位,仅IE支持 |
getComputedStyle(element).styleName | 返回的值有单位 ,标准浏览器支持(IE9及以上支持) | |
(6)属性操作 | ||
获取属性 | element.getAttribute(‘attributeName’) | 属性的值 |
element.attribute | 属性的值 | |
element[‘attribute’] | 属性的值 | |
设置属性值 | element.setAttribute(‘attributeName’) | dom元素上查看会有该属性 |
不能通过element.attribute获取只能通过 element.getAttribute(‘attributeName’) | ||
移除属性 | element.removeAttribute(‘attributeName’) | dom元素查看无此属性 |
1.1内容操作
1.1.1表单元素
对于input这种半闭合标签,操作内容是操作它的value值。
(1) 获取value —> 元素.value
(2)设置value —> 元素.value = 值
<input type="text" id="text1">
<input type="button" value="按钮" id="btn">
<input type="text" id="text2">
js操作
var text1 = document.getElementById('text1');
var text2 = document.getElementById('text2');
var btn = document.getElementById('btn');
btn.onclick = function() {
var t = text1.value; // 获取input元素的内容
text2.value = t; // 设置值
}
点击按钮,id为text2的标签值会发生变化。
1.1.2闭合标签
和半闭合标签不同,闭合标签的内容都是获取innerHTML或者innerText值。
(1) 获取:元素.innerHTML 元素.innerText
(2)设置:元素.innerHTML = 新值 元素.innerText = 新值
两者区别:innerHTML可以解析字符串中的标签,常常在渲染页面的时候用字符串拼接。
document.getElementById("box").innerHTML = "<span>天气有点冷</span>";
document.getElementById("box").innerText = "天气有点冷";
1.2属性操作
1.2.1闭合标签
(1)获取属性:元素.属性名
(2)设置属性:元素.属性名 = 新值
document.getElementById("box").title = 'hobby';
//浏览器查看元素title属性
1.2.2表单元素
获取和设置与上面方法一样
<input type="text" id="tex">
var t = document.getElementById('tex');
t.onclick = function() {
t.type = 'button';
t.value = '按钮';
} //点击输入框,瞬间会变成按钮
1.3 样式操作
1.3.1行间样式
- (1)获取行间样式:
element.style.样式名(只能获取行间样式),这样获得的属性值是带单位的.
- (2)设置行间样式:
- <1>元素.style.样式名 = 样式值
- <2>元素.style.cssText =“属性名:属性值;······” ;不推荐使用
//可以单个设置样式
var oBox = document.getElementById('box');
oBox.style.width = '200px'
oBox.style.width = '200px';
oBox.style.height = '200px';
oBox.style.backgroundColor = 'brown';
oBox.style.color = 'yellow';
oBox.style.fontSize = '30px';
//也可以写在一起
oBox.style.cssText = 'width: 200px;height: 200px;background: brown; color: yellow; font-size: 30px;';
console.log(oBox.style.width);//300px
1.3.2、行外样式
获取元素样式表中的样式。兼容性写法
<style type="text/css">
#box{
width: 100px;
height: 100px;
background-color:blueviolet;
}
</style>
<body>
<div id="box"></div>
</body>
<script type="text/javascript">
window.onload = function(){
// getComputedStyle在支持的浏览器里是一个函数,在不支持的浏览器是undefined
console.log(typeof window.getComputedStyle === 'function');
var box =document.getElementById("box");
if (typeof window.getComputedStyle === 'function'){
console.log(getComputedStyle(box).backgroundColor);
//rgb(138, 43, 226)
console.log(getComputedStyle(box).width);//100px
console.log(getComputedStyle(box).height);//100px
}else{
console.log(box.currentStyle.backgroundColor);//blueviolet
console.log(box.currentStyle.width);//100px
console.log(box.currentStyle.height);//100px
}
}
</script>
封装:
/**
* @param obj 元素
* @param attr 样式名
* @returns {*} 返回带单位样式值
*/
function getStyle(obj, attr) {
if (typeof(getComputedStyle) === 'function') {
// 标准浏览器(IE9及以上)
return getComputedStyle(obj)[attr];
} else {// IE8及以下
return obj.currentStyle[attr];
}
}
1.4元素类(class)操作
动态的添加或者修改删除元素的类选择器,会让元素的样式动态的变化。这样静态页面的元素就会有动态的效果了。
1.4.1、获取类
获取:元素.className
1.4.2、设置类
设置:
1、元素.className = ‘className’;
2、元素.classList.add(“类名1”,“类名2”,…)
1.4.3、删除类
删除:
元素.className = ‘’;
元素.classList.remove(“类名1”,“类名2”,…)
例如:
<style type="text/css">
.abc {width: 200px;height: 200px;background: brown;}
.color1 {color: #fff;}
.f30 {font-size: 30px;}
</style>
<div id="box">我就是我</div>
<script type="text/javascript">
var oBox = document.getElementById('box');
oBox.onclick = function() {
oBox.className = 'abc color1 f30';
//或者
this.classList.add("abc")
this.classList.add("color1")
this.classList.add("f30")
}
</script>
1.4.4、类名是否存在
设置:
1、元素.classList.contain(“类名”)
var result = element.className.contain(class)//true Or false
1.4.5、切换类名
设置:
1、元素.classList.toggle(“类名”)
element.className.toggle("类名1","类名2",···)
1.5、图片src操作
(1)获取图片src值:图片.src 一般不用
(2)设置图片src值:图片.src = 地址
oImg.src = 'img/2.jpg';