切换相同的 class 个名字,除了一个 (JavaScript)
Toggling same class names except for one (JavaScript)
我正在尝试阻止具有 'show' 的 class 属性的段落元素在 updateButton 上的点击事件中切换。我试过 if else 语句但无济于事。
当我单击更新按钮 并且这些按钮底部的所有文本都需要显示(段落元素)时,我实际上是在尝试创建一个编辑状态。虽然下面已经有一个带有文本的按钮,但我想防止切换 class .hide.
其他按钮已经具有 .hide class 属性,因此当从点击事件切换时,它们会出现。
TLDR: 我想防止没有 .hide class 属性的一段元素在什么时候切换我切换 .risk-text 容器中的所有其他段落元素。
// select indicator div
const riskIndicator = document.getElementById("Risk__indicator");
// select update button
const updateButton = document.getElementById("Update_button");
// Indicator buttons
const indicatorButton = document.getElementsByClassName("Risk_indicator_button");
// Indicator 'check every..' text
const checkIndicatorText = document.querySelectorAll(".risk-text");
// select update button
updateChange: updateButton.addEventListener("click", function (event) {
riskIndicator.classList.toggle("active");
});
// If statement to check whether the Risk Indicator is active to apply background changes
editState: updateButton.addEventListener("click", function(el) {
[].map.call(document.querySelectorAll('.risk-text'), function(el) {
// loop through text indicator elements checking to see if it's got a hidden class attribute
el.classList.toggle('hide');
});
});
取决于您的用例:
如果您只想排除它一次,然后将此元素与其他元素切换,请执行以下操作:
editState: updateButton.addEventListener("click", function(el) {
[].map.call(document.querySelectorAll('.risk-text:not(.hide)'), function(el) {
// loop through text indicator elements checking to see if it's got a hidden class attribute
el.classList.toggle('hide');
});
});
如果您想单独保留 "ember" 元素,则
editState: updateButton.addEventListener("click", function(el) {
[].map.call(document.querySelectorAll('.risk-text:not(.low_risk_text__wrap--risk-middle-amber)'), function(el) {
// loop through text indicator elements checking to see if it's got a hidden class attribute
el.classList.toggle('hide');
});
});
您还可以添加新的 class,例如 "spareMe",并使用 .not()
排除它
我正在尝试阻止具有 'show' 的 class 属性的段落元素在 updateButton 上的点击事件中切换。我试过 if else 语句但无济于事。
当我单击更新按钮 并且这些按钮底部的所有文本都需要显示(段落元素)时,我实际上是在尝试创建一个编辑状态。虽然下面已经有一个带有文本的按钮,但我想防止切换 class .hide.
其他按钮已经具有 .hide class 属性,因此当从点击事件切换时,它们会出现。
TLDR: 我想防止没有 .hide class 属性的一段元素在什么时候切换我切换 .risk-text 容器中的所有其他段落元素。
// select indicator div
const riskIndicator = document.getElementById("Risk__indicator");
// select update button
const updateButton = document.getElementById("Update_button");
// Indicator buttons
const indicatorButton = document.getElementsByClassName("Risk_indicator_button");
// Indicator 'check every..' text
const checkIndicatorText = document.querySelectorAll(".risk-text");
// select update button
updateChange: updateButton.addEventListener("click", function (event) {
riskIndicator.classList.toggle("active");
});
// If statement to check whether the Risk Indicator is active to apply background changes
editState: updateButton.addEventListener("click", function(el) {
[].map.call(document.querySelectorAll('.risk-text'), function(el) {
// loop through text indicator elements checking to see if it's got a hidden class attribute
el.classList.toggle('hide');
});
});
取决于您的用例:
如果您只想排除它一次,然后将此元素与其他元素切换,请执行以下操作:
editState: updateButton.addEventListener("click", function(el) {
[].map.call(document.querySelectorAll('.risk-text:not(.hide)'), function(el) {
// loop through text indicator elements checking to see if it's got a hidden class attribute
el.classList.toggle('hide');
});
});
如果您想单独保留 "ember" 元素,则
editState: updateButton.addEventListener("click", function(el) {
[].map.call(document.querySelectorAll('.risk-text:not(.low_risk_text__wrap--risk-middle-amber)'), function(el) {
// loop through text indicator elements checking to see if it's got a hidden class attribute
el.classList.toggle('hide');
});
});
您还可以添加新的 class,例如 "spareMe",并使用 .not()
排除它