JavaScript操作DOM对象(节点信息、操作节点、style属性、获取元素样式)

JavaScript操作DOM对象

一、DOM概述

  • Document Object Model,即文档对象模型

  • DOM

    • DOM Core
    • CSS-DOM
    • HTML-DOM
  • 节点与节点的关系

二、访问节点

  • 使用getElement系列方法访问指定节点

    • getElementById() 通过id访问节点
    • getElementsByName() 通过类名访问节点
    • getElementsByTagName() 通过标签访问节点
  • 根据层次关系访问节点

  • 节点属性

    • parentNode 返回节点的父节点
    • childNodes 返回子节点集合,childNodes[i]
    • firstChild 返回节点的第一个子节点,最普遍的用法是访问该元素的文本节点
    • lastChild 返回节点的最后一个子节点
    • nextSibling 下一个节点
    • previousSibling 上一个节点

三、element属性

  • firstElementChild 返回节点的第一个子节点,最普遍的用法是访问该元素的文本节点
  • lastElementChild 返回节点的最后一个子节点
  • nextElementSibling 下一个节点
  • previousElementSibling 上一个节点
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<ul id="nodeList">
    <li>aaa</li>
    <li>bbb</li>
    <li>ccc</li>
</ul>
<script>
    var nodes = document.getElementById("nodeList");
    var node = nodes.firstElementChild;
    console.log(nodes);
    console.log(node);
</script>
</body>
</html>

运行结果:
在这里插入图片描述

四、节点信息

  • nodeName:节点名称
  • nodeValue:节点值
  • nodeType:节点类型
    • 元素element 1
    • 属性attr 2
    • 文本text 3
    • 注释comments 8
    • 文档document 9
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="text" value="请输入" id="a">
<script>
    var name = document.getElementById("a").nodeName;
    var value = document.getElementById("a").nodeValue;
    var type = document.getElementById("a").nodeType;
    console.log(name);
    console.log(value);
    console.log(type);
</script>
</body>
</html>

运行结果:
在这里插入图片描述

五、操作节点属性

  • getAttribute(“属性名”)
  • setAttribute(“属性名”,“属性值”)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>

<input value="OK">

<p id="demo">点击下面的按钮来设置按钮的类型属性。</p>
<button onclick="myFunction()">点我</button>
<script>
function myFunction(){
	document.getElementsByTagName("INPUT")[0].setAttribute("type","button"); 
};
</script>
<p>Internet Explorer 8 及更早的版本不支持 setAttribute 方法。</p>

</body>
</html>

运行结果:
在这里插入图片描述
点击后:
在这里插入图片描述

六、创建和插入节点

  • createElement( tagName) 创建一个标签名为tagName的新元素节点
  • A.appendChild( B) 把B节点追加至A节点的末尾
  • insertBefore( A,B ) 把A节点插入到B节点之前
  • cloneNode(deep) 复制某个指定的节点
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<body>

<p id="demo">单击按钮创建有文本的按钮</p>
<button onclick="myFunction()">点我</button>
<script>
function myFunction(){
	var btn=document.createElement("BUTTON");
	var t=document.createTextNode("CLICK ME");
	btn.appendChild(t);
	document.body.appendChild(btn);
};

</script>

</body>
</html>

运行结果:
在这里插入图片描述

七、删除和替换节点

  • removeChild( node) 删除指定的节点
  • replaceChild( newNode, oldNode)属性attr 用其他的节点替换指定的节点
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Title</title>
</head>
<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 textnode=document.createTextNode("Water");
	var item=document.getElementById("myList").childNodes[0];
	item.replaceChild(textnode,item.childNodes[0]);
}
</script>
<p>首先创建一个文本节点。<br>然后替换第一个列表中的第一个子节点。</p>
<p><strong>注意:</strong>这个例子只将文本节点的文本节点“Coffee”替换为“Water”,而不是整个LI元素,这也是替换节点的一种备选。</p>

</body>
</html>

运行结果:
在这里插入图片描述
点击后:
在这里插入图片描述

八、style属性

语法:HTML元素.style.样式属性="值"

document.getElementById("titles").style.color="#ff0000"; document.getElementById("titles").style.fontSize="25px ";

九、className属性

语法:HTML元素.className=“样式名称”

function over(){     
	document.getElementById("cart").className="cartOver";
	document.getElementById("cartList").className="cartListOver";
} 

十、获取元素样式

  • 语法:HTML元素.style.样式属性;

  • 不支持IE浏览器

    document.defaultView.getComputedStyle(元素,null).属性;

  • 兼容IE浏览器

    HTML元素. currentStyle.样式属性;

十一、HTML中元素属性

  • offsetLeft 返回当前元素左边界到它上级元素的左边界的距离,只读属性

  • offsetTop 返回当前元素上边界到它上级元素的上边界的距离,只读属性

  • offsetHeight 返回元素的高度

  • offsetWidth 返回元素的宽度

  • offsetParent 返回元素的偏移容器,即对最近的动态定位的包含元素的引用

  • scrollTop 返回匹配元素的滚动条的垂直位置

  • scrollLeft 返回匹配元素的滚动条的水平位置

  • clientWidth 返回元素的可见宽度

  • clientHeight 返回元素的可见高度

  • 标准浏览器应用属性案例

    document.documentElement.scrollTop; 
    document.documentElement.scrollLeft;
    
  • Chrome应用属性案例

    document.body.scrollTop; 
    document.body.scrollLeft;
    
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
获取DOM元素节点有多种方法。其中包括通过id获取节点、通过标签名获取节点数组以及通过类名获取节点数组。 通过id获取节点是通过元素的唯一id属性获取元素节点的方法。例如,可以使用document.getElementById("box1")来获取id为"box1"的元素节点。 通过标签名获取节点数组是通过元素的标签名来获取一组相同标签名的元素节点的方法。例如,可以使用document.getElementsByTagName("div")来获取所有标签名为"div"的元素节点数组。 通过类名获取节点数组是通过元素的类名来获取一组具有相同类名的元素节点的方法。例如,可以使用document.getElementsByClassName("box2")来获取所有类名为"box2"的元素节点数组。 另外,还有一些其他的属性可以用于获取节点,比如childNodes属性可以返回指定元素的所有子节点的集合,包括元素节点属性节点和文本节点。要获取第一个子元素节点,可以使用firstElementChild属性(在IE9及以上版本中可用)或者firstChild属性(在IE6、7和8中可用)。 综上所述,根据具体需求,可以选择使用适当的方法来获取DOM元素节点。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [JavaScript学习笔记——DOM元素节点获取](https://blog.csdn.net/Nozomi0609/article/details/108442668)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值