网站建设学习(十三)——DOM对象

 

       上一篇介绍了BOM编程与事件对象,这一篇介绍DOM编程,DOM主要是对html标签进行查找或者修改,以js的方式对html页面进行修改,因为js本身具有互动性,所以应用DOM可以实现动态网页的制作。之前有小伙伴反馈说不好区分BOM与DOM的区别,其实BOM主要是操作浏览器,修改或者获取浏览器的动作,DOM操作网页,直接对网页内容进行判断修改,静态的html与css样式不能实时交互,BOM与DOM这样的组合可以根据浏览器与人的要求进行网页操作。DOM的标准也不是统一的,同时DOM的对象方法属性也比较多,文末会附有链接。本篇文章代码的理解不够全面没关系,只要理解含义即可,后期我会实践写一个网站,整个过程和源码也会同步到博客上。

BOM对象
图一   BOM对象
DOM对象
图二   DOM对象

html:

<html>
<!--  标签html:内部包含整个HTML页面,所有的设计均在当前的html标签内部进行-->
    <head>
    <!--整个文件的头部,里面包括一些属性供浏览器识别解析,对用户不可见-->

        <title>标题</title>
        <!--标签title,说明整个页面的标题,最终显示在浏览器加载页面的标签页-->

        <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
        <!--告诉浏览器以utf-8的码表进行解码,防止中文乱码,meta标签是无标签体标签,结束在开始标签后加反斜杠,即空标签-->

        <script src="DOM编程.js"></script>
        <!--引入js文件-->

    </head>


    <body>
    <!--整个文件的体,设计元素在这个部分中,最终展示给用户-->

    </body>
</html>

DOM编程.js:

/*
html页面加载完毕后,js会将每一个标签封装成对象,使这些对象标签形成树状结构,
通过操作找到对应标签,在对相应标签进行相应操作
*/


//document对象集合
document.write(typeof(document.all.length)+"<br/>");
for (var i = 0; i<5; i++){
    document.write(document.all[i].nodeName+"<br/>");
}//这里只加载到script标签,是因为文件执行到此为止,为了全部展示,可以使用onload事件

function test_onload(){
    var number = document.all.length;
    document.write(number);
    for (var i = 0; i<number; i++){
        document.write(document.all[i].nodeName+"<br/>");
    }
}

//anchors[]	返回对文档中所有 Anchor 对象的引用。
//applets	返回对文档中所有 Applet 对象的引用。
//forms[]	返回对文档中所有 Form 对象引用。
//images[]	返回对文档中所有 Image 对象引用。
//links[]	返回对文档中所有 Area 和 Link 对象引用。

//document对象属性
document.write(document.cookie+"<br/>");//设置或返回与当前文档有关的所有 cookie。
document.write(document.domain+"<br/>");//返回当前文档的域名
document.write(document.lastModified+"<br/>");//返回文档被最后修改的日期和时间。
document.write(document.referrer+"<br/>");//返回载入当前文档的文档的 URL。
document.write(document.title+"<br/>");//返回当前文档的标题。
document.write(document.URL+"<br/>");//返回当前文档的 URL。

//document对象方法
//close()	关闭用 document.open() 方法打开的输出流,并显示选定的数据。
//getElementById()	返回对拥有指定 id 的第一个对象的引用。
//getElementsByName()	返回带有指定名称的对象集合。
//getElementsByTagName()	返回带有指定标签名的对象集合。
//open()	打开一个流,以收集来自任何 document.write() 或 document.writeln() 方法的输出。
//write()	向文档写 HTML 表达式 或 JavaScript 代码。
//writeln()	等同于 write() 方法,不同的是在每个表达式之后写一个换行符。


//Element对象,表示html元素,这个对象对于返回标签更加细致
//可以返回父节点,子节点,兄弟结点等等
//element是document返回的对象,可以根据此对象的数组进行操作
document.writeln(document.head.nodeName+"<br/>");
document.writeln(document.head.childNodes[0].nodeName+"<br/>");
/*
element.accessKey	设置或返回元素的快捷键。
element.appendChild()	向元素添加新的子节点,作为最后一个子节点。
element.attributes	返回元素属性的 NamedNodeMap。
element.childNodes	返回元素子节点的 NodeList。
element.className	设置或返回元素的 class 属性。
element.clientHeight	返回元素的可见高度。
element.clientWidth	返回元素的可见宽度。
element.cloneNode()	克隆元素。
element.compareDocumentPosition()	比较两个元素的文档位置。
element.contentEditable	设置或返回元素的文本方向。
element.dir	设置或返回元素的内容是否可编辑。
element.firstChild	返回元素的首个子。
element.getAttribute()	返回元素节点的指定属性值。
element.getAttributeNode()	返回指定的属性节点。
element.getElementsByTagName()	返回拥有指定标签名的所有子元素的集合。
*/
//除了进行查找,也可以对标签的一些属性进行设置
/*
element.id	设置或返回元素的 id。
element.innerHTML	设置或返回元素的内容。
element.insertBefore()	在指定的已有的子节点之前插入新节点。
element.isContentEditable	设置或返回元素的内容。
element.style	设置或返回元素的 style 属性。
element.tabIndex	设置或返回元素的 tab 键控制次序。
element.tagName	返回元素的标签名。
element.textContent	设置或返回节点及其后代的文本内容。
element.title	设置或返回元素的 title 属性。
*/


//Attribute对象,这个对象主要返回一些值,名称属性等等,也是有doc对象而来
/*
attr.isId	如果属性是 id 类型,则返回 true,否则返回 false。
attr.name	返回属性的名称。
attr.value	设置或返回属性的值。
attr.specified	如果已指定属性,则返回 true,否则返回 false。
nodemap.getNamedItem()	从 NamedNodeMap 返回指定的属性节点。
nodemap.item()	返回 NamedNodeMap 中位于指定下标的节点。
nodemap.length	返回 NamedNodeMap 中的节点数。
nodemap.removeNamedItem()	移除指定的属性节点。
nodemap.setNamedItem()	设置指定的属性节点(通过名称)。
*/


/*
总结:拿到标签的方法有三种:1、通过集合获取:例如all[]
                          2、通过属性获取:例如父子结点
                          3、通过方法获取:例如id获取方式
     修改标签方法有两种:1、通过对象属性,修改诸如文本,标签属性值
                       2、通过对象方法进行修改,添加删除结点等等
*/

JavaScript参考手册链接:JavaScript参考手册

       这其中有不合适或者不正确的地方欢迎指正,我的QQ号码:2867221444(乔金明),谢谢,也可以相互交流下,备注信息随意,只要能看得出是开发者或者学习者即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HTML DOM(文档对象模型)是一种编程接口,允许程序访问和操作HTML文档中的元素。使用JavaScript来操作HTML DOM可以让网页具有交互性和动态性。 在JavaScript中,可以使用getElementById,getElementsByTagName和getElementsByClassName等方法来获取页面上的元素。例如,通过getElementById("myId")可以获取id为"myId"的元素。 操作元素的属性和内容也很简单,可以使用如下方法: - 修改元素的属性:element.attribute = new value - 访问元素的属性:element.attribute - 修改元素的内容:element.innerHTML = new content - 访问元素的内容:element.innerHTML 通过操作HTML DOM,可以实现各种交互效果和动态效果。例如,可以在点击按钮时显示或隐藏元素,或在输入框中输入文本时实时更新页面内容等。 ### 回答2: HTML DOMJavaScript操作网页中元素和属性的主要方式之一。在HTML DOM中,文档元素是指HTML页面中所有元素的根节点。文档元素的操作包括获取元素、创建元素、删除元素、修改元素属性等。 获取元素是HTML DOM操作的重要一环。在JavaScript中,可以使用getElementById()、getElementsByTagName()、getElementsByClassName()等方法获得HTML页面中的元素。其中getElementById()方法可以通过元素的ID获取该元素的引用,常用于根据ID修改元素的属性或内容。而getElementsByTagName()方法可以通过标签名获取HTML页面中所有该标签的元素,例如获取所有的h1元素,常用于对整个页面的控制。getElementsByClassName()方法可以通过class属性获取HTML页面中所有具有该class的元素。 创建元素是向HTML页面中添加元素的重要方式。可以使用createElement()方法创建一个新元素,然后使用appendChild()方法将其添加到现有元素中。例如,创建一个新的p元素,并将其添加到body元素中可以使用以下代码: var newPara = document.createElement("p"); var textNode = document.createTextNode("This is a new paragraph."); newPara.appendChild(textNode); document.body.appendChild(newPara); 删除元素也是HTML DOM中的一个常用操作。可以使用removeChild()方法删除现有元素,例如: var parent = document.getElementById("parent-id"); var child = document.getElementById("child-id"); parent.removeChild(child); 修改元素属性是HTML DOM中的另一个核心操作。可以使用setAttribute()方法修改元素的属性值,例如: var element = document.getElementById("my-id"); element.setAttribute("class", "new-class"); 可以通过HTML DOM操作文档元素,实现对页面元素和属性的各种操作。掌握HTML DOM的知识,可以更好地控制和管理HTML页面。 ### 回答3: HTML DOMJavaScript操作网页元素的主要方式之一,它的核心在于文档对象模型(DOM,Document Object Model),需要熟悉DOM才能灵活操作网页元素。文档元素是HTML页面中的根元素,它是其他所有元素的祖先元素,也是HTML DOM操作的基础。 一、获取元素 在JavaScript中,我们可以通过各种方式来获取文档元素,例如getElementById()、getElementsByTagName()、getElementsByClassName()等。其中,通过id、标签名和类名获取元素是最常用的三种方法。 1. getElementById() 此方法用于获取具有指定id属性的元素,其语法为document.getElementById(id)。id属性在整个HTML文档中应该是唯一的。 示例:获取id为“demo”的元素 ``` var demo = document.getElementById("demo”); ``` 2. getElementsByTagName() 此方法用于获取具有指定标签名的元素,其语法为document.getElementsByTagName(tagname)。 示例:获取所有p元素 ``` var pList = document.getElementsByTagName("p"); ``` 3. getElementsByClassName() 此方法用于获取具有指定类名的元素,其语法为document.getElementsByClassName(classname)。 示例:获取类名为“red”的元素 ``` var redList = document.getElementsByClassName("red"); ``` 二、改变元素 有很多种方法可以改变文档元素的属性和样式,下面列举一些常见的方法: 1. 修改元素的文本内容 我们可以通过innerHTML属性和innerText属性来修改元素的文本内容。 innerHTML属性用于改变元素的HTML内容,其语法为element.innerHTML=new html content; innerText属性用于改变元素的纯文本内容,其语法为element.innerText=new text content; 2. 修改元素的样式 我们可以通过style属性来修改元素的样式,其中style属性包含了元素的所有样式属性。 示例:将id为“demo”的元素背景色改为红色 ``` document.getElementById("demo").style.backgroundColor = "red"; ``` 3. 创建新元素 我们可以使用document.createElement()方法来创建新元素,并通过appendChild()方法将其加入到指定的元素内。 示例:创建一个新的p元素 ``` var newP = document.createElement("p"); ``` 4. 删除元素 我们可以使用parentNode.removeChild()方法来删除指定的元素。 示例:删除id为“demo”的元素 ``` var demo = document.getElementById("demo"); demo.parentNode.removeChild(demo); ``` 三、总结 通过这篇文章的学习,我们了解了HTML DOM的基础知识和基本操作方法,例如获取元素、改变元素的属性和样式以及创建和删除元素等。掌握这些操作方法可以帮助我们更好地操作网页元素,从而实现丰富多彩的网页效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值