如何从页面中删除div,以便即使使用jQuery

时间:2019-02-06 12:42:02

标签: jquery

我创建了一个包含表单的HTML页面。每当用户关闭此表单时,它就会消失。现在我要做的是删除此表单,这样即使刷新页面后它也不会出现。有人知道吗?

4 个答案:

答案 0 :(得分:0)

您的问题很模糊,但是您可以尝试以下方法:

  1. display: none在html表单中(一种灵活的方法是为此使用css类)。
  2. 当有人触发表单时,您删除了display: none,使其可见。
  3. 当用户再次关闭表单时,您再次添加display: none类。

这当然是独立于Angular的解决方案。

答案 1 :(得分:0)

仅使用JavaScript和JQuery是不可能的,您唯一可以做到的方法是将cookie或密钥保存在localStorage中,并在页面加载时使用它来显示/用一些CSS隐藏表单。

但是,出于安全性考虑,不建议这样做,因为您的用户可以只显示您的表单,而仍然可以通过删除其localStorage键,cookie或修改CSS样式来显示它来使用它。

答案 2 :(得分:0)

我解释您的模糊问题的方式,我相信这可以帮助您...

例如:

<form id="frm">
....
</form>
<button id="btnCloseForm"></button>

您可以使用JQuery来实现:

//create cookie when clicked
$("#btnCloseForm").click(function() {
    createCookie("frmclosed","true",10);
});

//if cookie exists, remove form
if (readCookie("frmclosed") != null)
    $("#frm").remove();

   // Cookies
    function createCookie(name, value, days) {
        if (days) {
            var date = new Date();
            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
            var expires = "; expires=" + date.toGMTString();
        }
        else var expires = "";               

        document.cookie = name + "=" + value + expires + "; path=/";
    }

    function readCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for (var i = 0; i < ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') c = c.substring(1, c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
        }
        return null;
    }

答案 3 :(得分:0)

一种方法是删除表单。如果在会话存储中存在密钥时刷新页面,则将表单ID作为sessionStorage.setItem(“ somekey”,formId)存储在本地存储会话存储中在表单中添加display:none。