我一直在研究工具提示,为此我创建了一个 javascript 函数Tooltip()
,在该函数中我选择了所有 DOM 元素,例如const targets = document.querySelectorAll('*')
,在选择所有元素后,我forEach
在targets
变量和内部为每个函数添加了函数我创建了一个if
语句,在该语句中我检查了一个元素包含我在数组中提到的特定属性,requiredAttrs
但它无法以某种方式工作!而且我不知道我在哪里做错了。
完整代码
function Tooltip() {
const requiredAttrs = ['data-tooltip', 'data-tooltip-position', 'data-tooltip-content'];
const targets = document.querySelectorAll('*');
targets.forEach((target, index) => {
if (target.hasAttribute(requiredAttrs[index])) {
console.log('Y');
} else {
console.log('No');
}
});
}
Tooltip();
<!DOCTYPE html>
<html dir="ltr" lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="public/css/main.css" />
<title>Pearl Framework</title>
</head>
<body class="vh-full grid-center">
<style>
body {
background-color: #a1a1a1;
}
.box {
width: 100px;
height: 100px;
background-color: purple;
}
</style>
<div
class="box"
data-tooltip="true"
data-tooltip-position="top-center"
data-tooltip-content="Hello, World!"
></div>
<script src="public/script/tooltip.js"></script>
</body>
</html>
如您所见, a<div class="box"></div>
具有所有 3 个属性,因此if
语句应该运行,但else
部分正在运行。