【发布时间】:2021-02-20 06:41:48
【问题描述】:
以下 HTML 代码创建 3 个元素,并允许用户单击/选择它们。
const changeColor = (evt) => {
if (evt.currentTarget.classList.contains("is-active")) {
evt.currentTarget.classList.remove("is-active");
} else {
evt.currentTarget.classList.add("is-active");
}
};
const EL_tagger1010_children = document.querySelectorAll(".tagger1010 span");
EL_tagger1010_children.forEach(EL => EL.addEventListener("click", changeColor));
.tagger1010 span {
padding: 6px 10px;
background: #D0E8E4;
border-radius: 18px;
color: #000000;
font-family: Roboto;
font-size: 12px;
margin: 0 4px 8px 0;
font-weight: 500;
display: inline-block;
word-wrap: break-word;
white-space: normal;
cursor: pointer;
user-select: none;
border: 1px solid BBD0CD;
}
.tagger1010 span.is-active {
background-color: #008fde;
color: #ffffff;
}
.tagger1010 span:hover {
background-color: #008fde;
color: #ffffff;
}
<div class="tagger1010">
<span>Google</span>
<span>Microsoft</span>
<span>Facebook</span>
<span>LinkedIn</span>
</div>
<div class="as-console-wrapper"></div>
<div class="as-console"></div>
如果标签包含在给定列表中,我希望将跨度预分配为“处于活动状态”。
例如,如果您运行上面的代码,并且给定的列表包括“Microsoft”和“LinkedIn” - 我希望“Microsoft”和“LinkedIn”已经被突出显示并且背景颜色为 #008fde ,颜色为#ffffff。
有谁知道我怎么说,“如果这个 span 的文本包含在这个列表中,让它具有 is-active 特征”
【问题讨论】:
-
您可以获取所有需要的元素(如 tagger1010 的所有子元素或所有跨度)并检查每个元素以查看其文本是否包含在某个预定义列表中。如果是添加 .is-active 类
标签: javascript html