Javascript 需要基于布尔表达式在页面加载时显示/隐藏div元素
我正在尝试加载一个基于本地存储表达式的div,该表达式存储在访问网页之前。例如,如果布尔值为true,那么显示div的简单方法是什么?我看了很多例子,但大多数都有点让人困惑Javascript 需要基于布尔表达式在页面加载时显示/隐藏div元素,javascript,html,dom,Javascript,Html,Dom,我正在尝试加载一个基于本地存储表达式的div,该表达式存储在访问网页之前。例如,如果布尔值为true,那么显示div的简单方法是什么?我看了很多例子,但大多数都有点让人困惑 谢谢。您只需在localStorage上检查变量即可 var item = window.localStorage.getItem('item') === "true"; if(item){ //load your div; }else{ //do stuff } 这里有两个简单的帮助函数,可以帮助您将对象
谢谢。您只需在localStorage上检查变量即可
var item = window.localStorage.getItem('item') === "true";
if(item){
//load your div;
}else{
//do stuff
}
这里有两个简单的帮助函数,可以帮助您将对象/布尔值等保存到localStorage
function SetObject(key, value) {
/// <summary>
/// Sets object to localStorage as <key, value> pair
/// This function will automatically stringify given object.
/// </summary>
/// <param name="key">Key object</param>
/// <param name="value">Value object</param>
try {
localStorage.setItem(key, JSON.stringify(value));
console.log("Set Data [" + key + "] Value");
console.log(value);
} catch (exception) {
if (exception.name === 'QUOTA_EXCEEDED_ERR' || exception.name === 'NS_ERROR_DOM_QUOTA_REACHED') {
console.error("Quota exceeded! Clear localStorage to solve problem. WARNING: Clearing localStorage will delete all user data.");
} else {
console.error("Unknown error while trying to set an item \"" + key + "\" with value: ");
console.log(value);
}
}
};
function GetObject(key) {
/// <summary>
/// Gets object from localStorage as value for given key
/// This function will automatically parse localStorage value and return object type
/// </summary>
/// <param name="key">Key object</param>
/// <returns>Object from localStorage that corresponds to given key</returns>
var value = localStorage.getItem(key);
var parsedValue = value && JSON.parse(value);
console.log("Get Data [" + key + "] of Value");
console.log(parsedValue);
return parsedValue;
};
// This will be executed when document DOM finished loading
$(document).ready(function() {
// Retrieve 'SomePropertyKey' value from localStorage and
// compare check if it's 'true'
if (GetObject("SomePropertyKey") == true) {
// jQuery call to change div's style 'display' to value 'block'
$("#divId").show();
}
});
HTML
。。。
您是否在使用某种DOM操作框架(例如jQuery)?技术说明:localStorage只存储文本。如果你认为你存储的是一个表达式或布尔值,那么请注意事实并非如此。expression
你指的是像a>50&&b-5==3之类的布尔值表达式还是什么?我指的是布尔值表达式true或false是的,你是对的。起初我以为他只想检查该项是否在本地存储上持久化。谢谢你的更正,所以我必须检查这个字符串,而不是布尔值?是的。正如@T.J.Crowder和Mike所说,localStorage只将iTen存储为Strings。你说得对,@T.J.Crowder,很抱歉,我有点空洞无物today@AlexandreWiechersVaz:哈哈!
<div id="divId" style="display: none;">...</div>