在更改它之前使用变量值 - JavaScript

时间:2017-02-13 21:24:53

标签: javascript

如何在我在同一行中更改变量值之前使用变量值。 我想要这样的事情:

document.getElementById("id").style.display = this == "none"? "initial" : "none";
取而代之的是"这个"引用该变量的值,而不重复名称/路径或其所谓的。

提前致谢。

3 个答案:

答案 0 :(得分:1)

使用变量:

var el = document.getElementById("id");
var display = el.style.display;

el.style.display = display == "none" ? "initial" : "none";

答案 1 :(得分:0)

您可以使用立即调用的函数表达式,以便动态分配变量。使用ES6箭头语法,如下所示:



((t,k) => t[k] = t[k] == "none"? "initial" : "none")
                           (document.getElementById("id").style, 'display');

A word is <span id="id">not</span> hidden 
&#13;
&#13;
&#13;

答案 2 :(得分:0)

不确定有哪些要求,但这里有一个示例代码段可以帮助您:

&#13;
&#13;
window.onload = function() {

  setInterval(function() { // To have some effect on display

    document.getElementById("myDiv").style.display =

      (function() {
        var display = document.getElementById("myDiv").style.display;
        return display;
      })() // Self invoke

    == "none" ? "block" : "none"; // Manage

  }, 1000);

}
&#13;
#myDiv {
  display: none;
  border: 1px solid red;
  padding: 20px;
}
&#13;
<div id="myDiv" class="myDivClass" style="display: none">Hello!</div>
&#13;
&#13;
&#13;

使用Arrow functions

&#13;
&#13;
setInterval(function() { // To have some effect on display
  var element = document.getElementById("myDiv");

  element.style.display =

    (() => {
      return element.style.display;
    })() // Self invoke

  == "none" ? "block" : "none"; // Manage

}, 1000);
&#13;
#myDiv {
  display: none;
  border: 1px solid red;
  padding: 20px;
}
&#13;
<div id="myDiv" class="myDivClass" style="display: none">Hello!</div>
&#13;
&#13;
&#13;