javascript - 切换样式 Javascript

标签 javascript html css

我正在尝试用 Javascript 编写一个简单的切换函数。它所做的是获取一个元素、一个样式名称和一个所需的值。如果元素上该样式的当前值为空字符串,则表示尚未设置,因此我们将其设置为给定值。否则,将其设置为空字符串以禁用它。

我的代码如下:

function toggleStyle(el, styleName, value) {
  if (el.styleName === '')
  {
    el.styleName = value;
  }
  else
  {
    el.styleName = '';
  }
}

但是,如果我想切换框的可见性,我不确定如何调用此函数。我知道直接更改可见性:我通常会这样做:

var box = document.getElementById("box");
box.style.display = "none";

但是我如何调用我的 toggleStyle 来执行此操作?我试过写:

toggleStyle (box, display, "none");
toggleStyle (box, style.display, "none");
toggleStyle (box.style, display, "none");

但似乎没有任何效果。

最佳答案

括号符号是您需要的,您需要传递字符串。

function toggleStyle(el, styleName, value) {
  if (el.style[styleName] !== value) {  //better to check that it is not the value you have
    el.style[styleName] = value;
  } else {
    el.style[styleName] = '';
  }
}

var btn = document.querySelector("button")
var div = document.querySelector("#foo")
btn.addEventListener("click", function () {
  toggleStyle(div, "display", "none")
});
<button type="button">Click Me</button>
<div id="foo">FOO</div>

这会在哪里失败?颜色代码是一回事,但这是朝着正确方向迈出的基本步骤。

关于javascript - 切换样式 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47665686/

相关文章:

javascript - 从非典型 json 数组中获取值

html - CSS/HTML : padding in % doesn't make sense

php - 如何在 php 页面加载时将下拉选择的值存储在变量中?

css - 为链接创建 'non-rectangular' 点击框?

javascript - jQuery 在模式打开/关闭时添加或删除类

javascript - 在javascript中将toDate设置为非必填字段

javascript - 调整大小时 fullpage.js 特定背景部分

javascript - 传递变量 PHP、Javascript location.reload 和 HTML 输入

javascript - 当元素溢出时如何增加元素的高度

jquery - 如何在行中显示数据看起来像列