javascript - 为什么要使用属性节点?
问题描述
这是使用属性节点的示例。为什么在 JavaScript 中访问 DOM 时需要使用属性节点
学习如何设置属性、获取属性、删除属性
需要知道为什么以及何时使用它?
if(document.getElementById("plc").hasAttribute("class"))
penguin.setAttribute("class", "hidden");
var penguin = document.getElementById("plc");
alert(document.getElementById("plc").getAttribute("class"));
解决方案
getAttribute
, setAttribute
, 和removeAttribute
技术上称为方法,它们通过操作属性作用于 DOM 节点。DOM 节点本身就是您分配给变量 penguin 的内容(但应该在使用之前分配)。
一个常见的用例与在节点上存储数据位有关。您可以设置该信息并在以后检索它。
假设你有一对企鹅。
<div id='penguin-crowd'>
<div class='penguin' data-species='emperor'></div>
<div class='penguin' data-species='king'></div>
</div>
现在你想列出他们的物种。
let penguins = document.getElementsByClassName('penguin');
for (let i = 0; i < penguins.length; i++) {
let species = penguin[i].getAttribute('data-species');
console.log(`This penguin's species is ${species}`);
}
结果:
// This penguin's species is emperor
// This penguin's species is king
将另一只企鹅添加到人群中。
let penguinCrowd = document.getElementById('penguin-crowd');
let newPenguin = document.createElement('div');
newPenguin.classList.add('penguin');
newPenguin.setAttribute('data-species','emperor');
penguinCrowd.appendChild(newPenguin);
现在你有
<div id='penguin-crowd'>
<div class='penguin' data-species='emperor'></div>
<div class='penguin' data-species='king'></div>
<div class='penguin' data-species='emperor'></div>
</div>
removeAttribute
从节点中删除整个属性,因此如果由于某种原因需要发生,这是您的首选方法。
推荐阅读
- swiftui - ios 13 SwiftUI向后导航时如何避免导航视图内的TabView应用崩溃
- c - 弱 const 变量上的 GCC 优化错误
- qt - 在cmake中检测静态Qt
- git - 我们可以更新 Docker Image 中的 git 版本吗?
- android - maxBy((Map.Entry
) -> R): Map.Entry ?已弃用。改用 maxByOrNull - elasticsearch - Elasticsearch 无法分配分片 0
- sql - SQL 区分大小写比较
- javascript - 如何从异步函数返回模板
- sql - 在 Oracle APEX 的情况下使用 sum 进行列合并
- android - 在回收站视图顶部闪烁