JS学习(10)----DOM
来源:互联网 发布:南京证券开户软件 编辑:程序博客网 时间:2024/06/04 23:36
1.DOM是什么
DOM: Document Object Model
2.DOM 方法
如前面经常使用的getElementById(“idName”);
document.getElementById("test").innerHTML = "Hello";
其中的getElementById是HTML DOM的方法,而innerHTML是HTML DOM的属性。
注:innerHTML可以改变任意html元素的内容,包括html和body。
3.Document
(1)寻找DOM元素的方法
有以下几种方法,分别是getElementById、getElementsByClassName、getElementsByTagName、getElementsByName
注:这几种方法中第一个是element,而后面的几种的element用的都是复数。
(A)getElementById
因为每一个元素的id都是唯一的,所以element是唯一的
document.getElementById("test")
(B)getElementsByName
顾名思义,这个方法时通过name属性来获取HTML DOM中对应的元素,因为不同的元素名字可以相同,所以elements用的是复数
<div name="docName" id="id1"></div><div name="docName" id="id2"></div>document.getElementsByName("docName");
可以通过document.getElementByName(“docName”)[0]或者是document.getElementByName(“docName”)[1]来单独访问一个元素。
(C)getElementsByClassName(className)
通过class的名字来获取元素。
document.getElementsByClassName("className");
(D)getElementsByTagName(TagName)
document.getElementsByTagName("p");
(E)querySelectorAll();
var x = document.querySelectorAll("p.test");var str = x[0].innerHTML + x[1].innerHTML;
(F)通过获取对象来得到元素element
// 注:此代码来自:https://www.w3schools.com<!DOCTYPE html><html><body><form id="frm1" action="/action_page.php"> First name: <input type="text" name="fname" value="Donald"><br> Last name: <input type="text" name="lname" value="Duck"><br><br> <input type="submit" value="Submit"></form> <p>Click "Try it" to display the value of each element in the form.</p><button onclick="myFunction()">Try it</button><p id="demo"></p><script>function myFunction() { var x = document.forms["frm1"]; var text = ""; var i; for (i = 0; i < x.length ;i++) { // 获取到的三个元素分别对应三个input text += x.elements[i].value + "<br>"; } document.getElementById("demo").innerHTML = text;}</script></body></html>
(2)改变元素的内容
可以改变元素对应属性的值,如下栗子:
<img id="image" src="test.jpg">
document.getElementById("image").src = "bird.jpg";
(3)DOM添加和删除节点
(A)createElement
常常与appendChild一起使用,因为添加之后需要将节点加到html中。
<!DOCTYPE html><html lang="en"><head> <meta charset="utf-8"></head><body> <p>点击按钮创建新的button元素</p> <button id="clickBtn">Click Me</button> <script src="script.js"></script></body></html>
/* * @Author: Lin* @Date: 2017-07-23 12:00:09* @Last Modified by: Lin* @Last Modified time: 2017-07-23 12:03:25*/document.getElementById("clickBtn").onclick = function() { var newBtn = document.createElement("input"); newBtn.type = "button"; newBtn.value = "newButton"; document.body.appendChild(newBtn);};
每次点击button,就会增加新的button。
(B)removeChild
<!DOCTYPE html><html lang="en"><head> <meta charset="utf-8"></head><body> <ul id="mlist"> <li>Apple</li> <li>Pear</li> <li>Watermelon</li> </ul <button id="btn" onclick="myFunction()">Click Me</button> <p id="test"></p> <script src="script.js"></script></body></html>
function myFunction() { var myList = document.getElementById("mlist"); myList.removeChild(myList.childNodes[0]);}
注:有个问题还没有搞懂,上面的这个代码执行后需要点击两次button显示界面中才会减少一个li,但是下面的这份代码却不一样,只需要点击一次就能够减少一个li。希望也欢迎理解其中不同的朋友给我留言。
<!DOCTYPE html><html><body> <ul id="myList"> <li>Coffee</li> <li>Tea</li> <li>Milk</li> </ul> <p id="demo">点击按钮来删除列表中的首个项目。</p> <button onclick="myFunction()">试一下</button> <script> function myFunction() { var list=document.getElementById("myList"); list.removeChild(list.childNodes[0]); } </script></body></html>
(4)添加事件处理器
document.getElementById("btn").onclick = myFunction() {......};
通过在js中添加事件处理器而不是直接在html中对事件进行处理,可以有效地将html、css和js分离开来,增强代码的可读性。
- JS学习(10)----DOM
- JS学习10(DOM扩展)
- JS学习9(DOM)
- JS学习总结(二)- Dom编程
- JS DOM学习
- JS DOM学习笔记
- JS 的 DOM 学习
- js dom操作学习笔记
- XML DOM学习笔记(JS)
- JS基础知识之:DOM学习
- JS之DOM基础学习
- js(javaScript)学习系列--DOM
- js学习—DOM元素
- js学习笔记:DOM扩展
- 【JS学习】——DOM
- js学习笔记--HTML DOM
- 学习记录 13-JS DOM操作(17/10/18于成都)
- 2011-3-10 (JS-DOM)
- java中的迭代器模式
- oracle常用
- [模板]manacher算法
- Digital Roots
- Ubuntu14.04下安装ros indigo opencv2.4.11
- JS学习(10)----DOM
- 南阳理工oj-水池数目
- PAT(Basic Level)_1013_数素数
- 程序员面试金典:机器人走方格II、魔术索引I
- Throwing cards away I
- 蓝牙加密三【Definition of Keys】
- 运算符
- 2036: 聪明的阿卑多
- HDU 1465 不容易系列之一