2017-02-13 28 views
0

Wie kann ich den Wert einer Variablen verwenden, bevor ich sie in derselben Zeile ändere? Ich möchte etwas, was wie folgt aus:Verwenden Sie den Wert einer Variablen, bevor Sie sie ändern - JavaScript

document.getElementById("id").style.display = this == "none"? "initial" : "none"; 

etwas an die Stelle der „this“ auf diese Variable den Wert zu beziehen, ohne den Namen/Pfad zu wiederholen oder was auch immer es genannt wird.

Vielen Dank im Voraus.

+0

, wie Sie diesen Code nennend? – Agalo

+0

@Agalo ist es Teil einer Funktion. – mockingjay

Antwort

1

Verwenden Variablen:

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

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

Sie könnten eine sofort aufgerufen Funktion Expression verwenden, so dass Sie Variablen on the fly zuweisen. Mit ES6 Pfeil Syntax sieht das wie folgt aus:

((t,k) => t[k] = t[k] == "none"? "initial" : "none") 
 
          (document.getElementById("id").style, 'display');
A word is <span id="id">not</span> hidden

0

Nicht sicher über die Anforderung an Ort und Stelle, aber hier ist ein Beispiel Schnipsel, Ihnen zu helfen mit:

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); 
 

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


Mit Arrow functions:

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);
#myDiv { 
 
    display: none; 
 
    border: 1px solid red; 
 
    padding: 20px; 
 
}
<div id="myDiv" class="myDivClass" style="display: none">Hello!</div>

Verwandte Themen