栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

DOM操作

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

DOM操作

什么是DOM操作

DOM:是当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
把文档中的代码翻译成一个对象模型
在这个模型中 所有相关的标签属性注释文本等等12种数据 都翻译为一种类型的对象 统称节点对象
这些对象之间在文档模型数据结构中存在某种关系: 根节点 父子节点 同胞节点等等
1.只有一个根节点document
2.除了根节点外所有节点都有唯一的一个父节点
3.document是window对象的属性
4.全局对象模型属于BOM操作 Browser Object Model 把浏览器对外提供的接口翻译为一个对象
BOM操作会在接下来的知识点讲到 它不属于标准的接口 但是浏览器厂商都提供了几乎一样的功能
5.元素的属性也是独立节点 叫属性节点 但是不是元素节点的子节点

本图来自(w3school)
DOM操作详细介绍请访问:https://www.w3school.com.cn/js/js_htmldom_elements.asp

通过方法获取节点

在 DOM 中,所有 HTML 元素都被定义为对象。
编程界面是每个对象的属性和方法。
属性是您能够获取或设置的值(就比如改变 HTML 元素的内容)。
方法是您能够完成的动作(比如添加或删除 HTML 元素)。
访问 HTML 元素最常用的方法是使用元素的 id。

var div1=document.getElementById("m1") 依靠id来获取元素节点/如果没有就返回null(不是id选择器)
var arr=document.getElementsByClassName("m2")  依靠calss来获取元素节点(不是class选择器)
var inps=document.getElementsByTagName("i")   依靠标签的名字来获取元素节点(不是标签名选择器)
var arr=document.getElementsByName("food1") 依靠name属性的值
H5自带的
var el=document.querySelector(".m2")  若符合选择器的第一个元素/null
var arr=document.querySelectorAll(".box2")  符合选择器的所有元素/[]

document.body  body标签
document.forms  form表单们
document.anchors a标签们
document.images 图片们
document.links 连接们
document.URL 当前文档的网址
通过关系获取节点
hello
2
box3
4
1.父级 父元素和父节点是同一个
var re=document.getElementById("box4").parentElement//父元素
var re=document.getElementById("box4").parentNode//父节点
console.log(re)

2.子级 子元素和子节点不一定是同一个
var son1=document.getElementById("box1").children//返回值是子元素们 没有返回空数组
console.log(son1)
var son1=document.getElementById("box1").childNodes //返回值是子节点们 没有返回空数组
console.log(son1)

3.兄弟
var re = document.getElementById("box4").nextSibling//下一个兄弟节点 没有返回null
console.log(re)
var re = document.getElementById("box2").nextElementSibling//下一个兄弟元素 没有返回null
console.log(re)
var re=document.getElementById("box3").previousSibling//上一个兄弟节点 没有返回null
console.log(re)
var re=document.getElementById("box3").previousElementSibling //上一个兄弟元素 没有返回null
console.log(re)			


            
4.第1个子节点
var son1=document.getElementById("box1").firstChild
var son2=document.getElementById("box1").firstElementChild
console.log(son1,son2)
			
			
5.最后一个子节点
var son1=document.getElementById("box1").lastChild
var son2=document.getElementById("box1").lastElementChild
console.log(son1,son2)

			
6.获取自己是父元素中的第几个子元素/节点
自己实现这个方法:调用者是父元素中的第几个元素 .index()						
 Object.prototype.index2=function() {
 	console.log(this)
 	var arr=this.parentElement.childNodes
 	for (let i = 0;i
 		if(this==arr[i]){
 			return i
			}
 	}
 }
 var index=document.getElementById("box4").index2()
console.log(index)
												
7.父元素中的第几个子元素/节点					
var son1=document.getElementById("box1").children[1]//第二个子元素
var son2=document.getElementById("box1").childNodes[1]//第二个子节点

			

元素无text,没有返回null。节点有text,没有返回null。
1.父节点

2.子节点

返回值是子元素们 没有返回空数组(上面个图)
返回值是子节点们 没有返回空数组(上面个图)
总的图

3.兄弟节点

4.第一个子节点

5.最后一个子节点

6.1当为childNodes时(子节点)
从0开始数

        Object.prototype.index2 = function () {
            console.log(this)
            var arr = this.parentElement.childNodes
            for (let i = 0; i < arr.length; i++) {
                if (this == arr[i]) {
                    return i
                }
            }
        }
        	var box = document.querySelector("#box6")
			console.log(box.index2())

结果

6.2当为children时(子元素)

			Object.prototype.index1=function(){
			 console.log(this)
				var arr=this.parentElement.children
				for(let i=0;i
					if(arr[i]===this){
						return i
					}
				}				 
			}
			var box = document.querySelector("#box6")
			console.log(box.index1())

结果

7.父元素中的第几个子元素/节点

表格的隔行变色

html





    
    
    Document
    



    
xxx xxx xxx xxx
xxx xxx xxx xxx
xxx xxx xxx xxx
xxx xxx xxx xxx

script

    

结果

百度换肤


	
		
		
	
	
		
		
		
		

第一种

		
			var imgs=document.getElementsByTagName("img")
			var srcarr=["https://blog.csdn.net/qq_53566222/article/details/填你自己的地址","https://blog.csdn.net/qq_53566222/article/details/填你自己的地址","https://blog.csdn.net/qq_53566222/article/details/填你自己的地址"]
			for(let i=0;i
				imgs[i].onclick=function(){
					document.body.style.backgroundImage=`url("${srcarr[i]}")`
				}
			}			
		

第二种

		document.body.style.backgroundImage=`url("https://blog.csdn.net/qq_53566222/article/details/填你自己的地址")`
		var imgs=document.getElementsByTagName("img")
		imgs[0].onclick=function(){
		document.body.style.backgroundImage=`url("${imgs[0].src}")`或者你自己的地址
		}
		imgs[1].onclick=function(){
		document.body.style.backgroundImage=`url("${imgs[1].src}")`或者你自己的地址
		}
		imgs[2].onclick=function(){
		document.body.style.backgroundImage=`url("${imgs[2].src}")`或者你自己的地址
		}

效果

Document - Google Chrome

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1017476.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号