https://www.w3school.com.cn/js/index.asp
1.JavaScriptHTML DOM
HTML--html标记
JavaScript---JavaScript对象/变量
我们现在需要通过JavaScript来改变html来改变html标记所呈现的样子/样式/位置等等。那么我们就需要将html标记转换成javascript对象
将html标记转换成javascript对象--html DOM对象
DOM(文档对象模型)
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
通过这个对象模型,JavaScript获得创建动态HTML的所有力量:
javascript能改变页面中的所有HTML元素
javascript能改变页面中的所有HTML属性
javascript能改变页面中的所有CSS样式
javascript能删除已有HTML元素和属性
javascript能添加新的HTML元素和属性
javascript能改变页面中的所有已有的HTML事件作出反应
javascript能在页面中创建新的HTML事件
通过HTMLDOM,Javascript能够访问和改变HTML文档的所有元素。
JavaScript-HTML-DOM方法
HTML-DOM方法是能够(在HTML元素上)执行的动作。
HTML-DOM属性是能够设置或改变的HTML元素的值。
下面的例子改变了Id="demo"的<p>元素的内容:
<html>
<body>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = "Hello World!";
</script>
</body>
</html>
getElementbyld方法
getElementbyld方法使用id=demo来查找元素。
innerHTML 属性
//1.得到元素的内容
//var var=document.getElementById("demo").innerHTML;
//alert(val);
//2.改变元素的内容
document.getElementByld("demo").innerHTML="hello“;
HTML.DOM.Document对象
文档对象代表你的网页
如果你希望访问HTML页面中的任何元素,那么访问就是从document对象开始的
查找HTML元素
方法 | 描述 |
document.getElementById(id) | 通过元素 id 来查找元素 |
document.getElementsByTagName(name) | 通过标签名来查找元素 |
document.getElementsByClassName(name) | 通过类名【class】来查找元素 |
1.document.getElementByld(id) 通过id查找HTML元素
如果元素被找到,此方法会以对象返回该元素(在myElement中)。
如果未找到元素,myElement将包含null.
当有HTML元素的id相同的时候,只能得到一个。
<script>
window.οnlοad=function(){
document.getElementByld("p1).innerHTML=”hello";
}
</script>
2. document.getElementsByTagName(name) 通过标签名查找 HTML 元素
var p=document.getElementsByTagName("p");
var temp=1;
for(var i=0;i<p.length;i++){
p[i].innerHTML="第"+temp+"p元素";
temp++;
}
名称相同的元素组成一个数组。
3.document.getElementByClassName(name).通过类名查找HTML元素
var class_p=document.getElementByClassName("p2");
for(var i=0;i<class_p.length,i++){
class_p[i].style.color="blue";
}
class属性值相同的元素组成一个数组。
改变HTML元素
方法 | 描述 |
element.innerHTML = new html content | 改变元素的 inner HTML |
element.attribute = new value | 改变 HTML 元素的属性值 |
element.setAttribute(attribute, value) | 改变 HTML 元素的属性值 |
element.style.property = new style | 改变 HTML 元素的样式 |
1.innerHTML得到/改变元素文本
<script>
window.onload=function(){
var parray=document.getElementsByTagName("p");
var temp=1;
for(var i=0;i<parray.length;i++){
parray[i].innerHTML="第"+temp+"p元素";
temp++;
}
alert(parray[3].innerHTML);
}
</script>
2.attribute改变HTML元素的属性值
element.attribute=new value这个语法规则中attribute使用具体的html元素属性名称来代替
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
function addBoder(){
var tableObject=document.getElementById("mainTable");
tableObject.border="1px";
}
function addwidth(){
var tableObject=document.getElementById("mainTable");
tableObject.width="400px";
}
function addbgcolor(){
var tableObject=document.getElementById("mainTable");
tableObject.bgColor="red";
}
function addtrbgcolor(){
var trObject=document.getElementsByTagName("tr");
for(var i=0;i<trObject.length;i++){
if(i%2!=0){
trObject[i].bgColor="blue";
}
}
}
</script>
</head>
<body>
<input type="button" value="设置表格的边框" onclick="addBoder();"/>
<input type="button" value="设置表格的宽度" onclick="addwidth();"/>
<input type="button" value="设置表格的隔行变色" onclick="addtrbgcolor();"/>
<input type="button" value="设置表格的背景色" onclick="addbgcolor();"/>
<table id="mainTable" >
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
</table>
</body>
</html>
得到指定的html元素对应的属性值
function getborder(){
var tableObject=document.getElementByld("mainTable")
alert(tableObject.border);
}
3. setAttribute(attribute,value)改变HTML元素的属性值
attribute--html元素的属性名称
value---html元素的属性名称取值
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
function addBoder(){
var tableObject=document.getElementById("mainTable");
tableObject.setAttribute("border","1px");
}
function addwidth(){
var tableObject=document.getElementById("mainTable");
tableObject.setAttribute("width","400px");
}
function addbgcolor(){
var tableObject=document.getElementById("mainTable");
tableObject.setAttribute("bgcolor","red");
}
function addtrbgcolor(){
var trObject=document.getElementsByTagName("tr");
for(var i=0;i<trObject.length;i++){
if(i%2!=0){
trObject[i].setAttribute("bgcolor","blue");
}
}
}
</script>
</head>
<body>
<input type="button" value="设置表格的边框" onclick="addBoder();"/>
<input type="button" value="设置表格的宽度" onclick="addwidth();"/>
<input type="button" value="设置表格的隔行变色" onclick="addtrbgcolor();"/>
<input type="button" value="设置表格的背景色" onclick="addbgcolor();"/>
<table id="mainTable" >
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
<tr><td>1001</td><td>zhangsan</td><td>23</td><td>西安</td></tr>
</table>
</body>
</html>
4.element.style.property=new.style得到/设置html元素对应css样式的属性值。
html元素的属性值---出现在HTML开始标记中的属性设置
css样式的属性值---给HTML设置的css样式中的属性。
<img/>
html元素的属性值---出现在html开始标记中的属性。
css样式中的属性值-src【错误】
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<!--
<style>
#div{
width:200px;
height:200px;
background-color: black;
}
</style>
-->
<script>
function testStyleAttr(){
var divObject=document.getElementById("div");
var wid=divObject.style.width;
var hei=divObject.style.height;
var mycolor=divObject.style.backgroundColor;
alert(wid+","+hei+","+mycolor);
divObject.style.width="400px";
divObject.style.height="400px";
divObject.style.backgroundColor="red";
}
</script>
</head>
<body>
<input type="button" value="测试修改样式属性" onclick="testStyleAttr();" />
<div id="div"
style="width:200px;height:200px;background-color: black;">
</div>
<!--
<div id="div"></div>
-->
</body>
</html>
添加和删除元素
方法 | 描述 |
document.createElement(element) | 创建 HTML 元素 |
document.removeChild(element) | 删除 HTML 元素 |
document.appendChild(element) | 添加 HTML 元素 |
document.replaceChild(element) | 替换 HTML 元素 |
document.write(text) | 写入 HTML 输出流 |
createTextNode(text) | 创建文本元素 |
添加和删除元素节点(html元素)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
/*
function testElement(){
var pobj=document.createElement("p");
alert(pobj);
}
*/
window.onload=function(){
document.getElementById("but").onclick=function(){
/*
//createElement(element)创建 HTML 元素
var pobj=document.createElement("p");
//createTextNode(text)创建文本元素
var node=document.createTextNode("测试添加p元素的文本值");
//将文本元素添加到HTML 元素中
pobj.appendChild(node);
//根据id得到div对象
var divobj = document.getElementById("div1");
divobj.appendChild(pobj);
*/
/*错误
var pobj=document.createElement("<p>测试添加p元素的文本值</p>");
//根据id得到div对象
var divobj = document.getElementById("div1");
divobj.appendChild(pobj);
*/
/*
//document.removeChild(element) 删除 HTML 元素
var p1 = document.getElementById("p1");
var divobj = document.getElementById("div1");
divobj.removeChild(p1);
*/
/*
//document.replaceChild(新元素,旧元素) 替换 HTML 元素
var pobj=document.createElement("p");
var node=document.createTextNode("测试添加p元素的文本值");
pobj.appendChild(node);
var p1 = document.getElementById("p1");
var divobj = document.getElementById("div1");
divobj.replaceChild(pobj,p1);
*/
document.write("<h1>测试写出一个html元素</h1>")
};
}
</script>
</head>
<body >
<!--<input type="button" value="测试元素的添加" onclick="testElement();"/><br>-->
<input id="but" type="button" value="测试元素的添加"/><br>
<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另一个段落。</p>
</div>
</body>
</html>
添加事件处理程序
方法 | 描述 |
document.getElementById(id).onclick = function(){code} | 向 onclick 事件添加事件处理程序 |
window.onload=function(){
document.getElementById("but").onclick=function(){
alert("按钮的点击事件");
};
}