相当于.show() - 简单JavaScript中的jQuery

Net*_*eta 6 javascript css jquery

任何人都有任何想法在javascript中相当于jquery的.show()?

我已经尝试使用document.getElementById并添加/删除我命名为"show"//"hide"的类,但是效果不好我可能在这些类中有错误的属性我不确定..

节目类是:

.show{
    position:relative;
    display:block;
}
Run Code Online (Sandbox Code Playgroud)

而hide类是:

.hide{
    position:absolute;
    top:0px;
    right:0px;
    display:none;
}
Run Code Online (Sandbox Code Playgroud)

我很确定有更好的方法.

小智 15

document.getElementById('myElement').style.display = 'block'; // show
document.getElementById('myElement').style.display = 'none'; // hide
Run Code Online (Sandbox Code Playgroud)

  • @Fresheyeball不,它根本不是真的相同.并非所有元素都是`display:block;`.有内联,内联块,表格,表格单元格,列表项目等等.jQuery show不会使这些`display:block`. (10认同)

Jos*_*eph 6

jQuery 会考虑display隐藏之前的值。当您 fire 时show(),它会将其返回到该值。因此,它不仅仅是简单地将元素的display属性设置为blockand none

所以基本上:

function hide(){
    //get previous display value
    //store it in an internal cache. jQuery has an internal data storage
    //hide element
}

function show(){
    //get previous display value for that element
    //apply to element to show it
}
Run Code Online (Sandbox Code Playgroud)

.show()

匹配的元素将立即显示,没有动画。这大致相当于调用.css('display', 'block'),不同之处在于显示属性恢复为最初的状态。如果一个元素的显示值为inline,然后隐藏并显示,它将再次内联显示。