一、BOM属性的增删改
Ⅰ、获取标签document.getElementById()
Ⅱ、获取属性值
方法一:document.write(inObj.value);
方法二:document.write(inObj.getAttribute(“value”));
Ⅲ、设置 属性值
方法一:inObj.value=”hello”;
方法二:inObj.setAttribute(“value”, “Django”);
Ⅳ、添加属性document.createAttribute(“class”);
Ⅴ、删除属性inObj.removeAttribute(“name”);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DOM 属性相关操作</title>
</head>
<body>
<input type="text" name="aaa" id="inputid" value="请输入:">
<script>
// 1、获取标签
var inObj = document.getElementById("inputid");
document.write("<br/>");
// 2、获取属性值 方法一
document.write(inObj.value);
document.write("<br/>");
// 获取属性值 方法二
document.write(inObj.getAttribute("value"));
document.write("<br/>");
// 3、设置属性值
// 方法一
// inObj.value="hello";
// document.write(inObj.value);
// document.write("<br/>");
// 方法二
// inObj.setAttribute("value", "Django");
// document.write(inObj.value);
//document.write("<br/>");
// 4、添加属性
// 创建属性节点
var attrObj = document.createAttribute("class");
// 与input标签建立联系
//inObj.appendChild(attrObj);
document.write("<br/>");
// 5、删除属性
document.write(inObj.getAttribute("name"));
inObj.removeAttribute("name");
document.write("<br/>");
document.write(inObj.getAttribute("name"));
</script>
</body>
</html>
二、DOM属性的其他常用操作
Ⅰ、标签节点
nodeName返回标签名,nodeType返回整型1,nodeValue返回null
Ⅱ、属性节点
nodeName返回属性名,nodeType返回整型2,nodeValue返回属性值
Ⅲ、文本节点
nodeName返回#text,nodeType返回整型3,nodeValue返回文本本身
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DMO 属性操作</title>
</head>
<body>
<span id="span_id"> Hello Django </span>
<br/>
<script>
/*
元素节点 /属性节点 /文本节点
nodeName: 返回标签名 /属性名 /#text
nodeType: 1 /2 /3
nodeValue: null /属性值 /文本本身
*/
// 1、标签节点
var eleObj = document.getElementById("span_id");
document.write(eleObj.nodeName);
document.write("<br/>");
document.write(eleObj.nodeType);
document.write("<br/>");
document.write(eleObj.nodeValue);
document.write("<hr/>");
// 2、属性节点
var attrObj = eleObj.getAttributeNode("id");
document.write(attrObj.nodeName);
document.write("<br/>");
document.write(attrObj.nodeType);
document.write("<br/>");
document.write(attrObj.nodeValue);
document.write("<hr/>");
// 3、文本节点
var textObj = eleObj.firstChild;
document.write(textObj.nodeName);
document.write("<br/>");
document.write(textObj.nodeType);
document.write("<br/>");
document.write(textObj.nodeValue);
</script>
</body>
</html>
三、DOM父节点与子节点
Ⅰ、已知子节点获取父节点
Ⅱ、已知父节点获取子节点
Ⅲ、获取全部子节点
Ⅳ、获取子节点的长度
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>父子节点</title>
</head>
<body>
<span>Hello</span>
<ul>
<li id="li1">111</li>
<li id="li2">222</li>
<li id="li3">333</li>
<li id="li4">444</li>
</ul>
<span>World</span>
<script>
// 1、已知子节点获取父节点
var liEle = document.getElementById("li1");
var ulEle = liEle.parentNode;
// 2、已知子节点获取父节点
var ulObj = document.getElementsByTagName("ul")[0];
document.write(ulObj.firstChild);
document.write(ulObj.lastChild);
// 获取全部子节点
var childObj = ulObj.childNodes;
document.write(childObj);
// 获取长度,5个换行加4个子节点
document.write(childObj.length);
</script>
</body>
</html>
四、InnerHTML属性
Ⅰ、获取文本内容
Ⅱ、设置HTML标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>innerHTML属性</title>
<style>
#box {
width:200px;
height:200px;
background-color: #3875d7;
}
</style>
</head>
<body>
<span id="span_id"> 123 </span>
<div id="box"> 456 </div>
<!--<table border="1" cellspacing="1" bgcolor="red" width="100px" height="100px"><tr><td>1</td></tr><tr><td>2</td></tr><tr><td>3</td></tr></table>-->
<script>
// 获取span标签对象
var spanObj = document.getElementById("span_id");
// 获取span的文本内容
document.write(spanObj.innerHTML);
// 设置 HTML 标签
var divObj = document.getElementById("box");
divObj.innerHTML = '<table border="1" cellspacing="1" bgcolor="red" width="100px" height="100px"><tr><td>1</td></tr><tr><td>2</td></tr><tr><td>3</td></tr></table>\n'
</script>
</body>
</html>
五、DOM事件
- 内联模式
将事件作为标签使用,可以识别JS中的代码和函数,不能做到JS和HTML标签分离
- 脚本模式
将事件作为属性使用,匿名函数,HTML标签与JS分离
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DOM 事件</title>
</head>
<body>
<input type="button" οnclick="func()" value="内联模式函数按钮">
<input type="button" οnclick="alert('123')" value="内联模式alert按钮">
<input type="button" id="input_1" value="脚本模式按钮1">
<input type="button" id="input_2" value="脚本模式按钮2">
<script>
// 1、内联模式
// 将事件作为标签的属性使用
// 可识别JS中的代码和函数,不能做到JS和HTML标签分离
function func(){
document.write("hello");
}
// 2、 脚本模式
// 将事件作为属性来使用,匿名函数
// 获取input标签
// HTML标签和JS分离
var input1 = document.getElementById("input_1");
// 给input标签添加单击事件
input1.onclick = function (){
document.write("input_1");
}
</script>
</body>
</html>
六、鼠标事件
①单击事件 onclick
②双击事件ondblclick
③悬浮事件 onmouseover
④失去焦点,移除鼠标 onmouseout
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>鼠标事件</title>
<style>
#box{
width:100px;
height:100px;
background-color: rebeccapurple;
}
</style>
</head>
<body>
<div id="box"> </div>
<script>
// 获取元素
var divObj = document.getElementById("box");
// 添加事件
// 单击事件
divObj.onclick = function (){
alert("单机事件");
}
// 双击事件
divObj.ondblclick = function (){
alert("双击事件");
}
// 悬浮事件
divObj.onmouseover = function (){
alert("悬浮事件");
}
// 失去焦点,把鼠标移除
divObj.onmouseout = function (){
alert("失去焦点");
}
</script>
</body>
</html>