7

javascript の jquery の .show() に相当するものを知っている人はいますか?

document.getElementById を使用して、「show」//「hide」という名前のクラスを追加/削除しようとしましたが、うまく機能しません。これらのクラスに間違った属性がある可能性があります..

ショークラスは次のとおりです。

.show{
    position:relative;
    display:block;
}

非表示クラスは次のとおりです。

.hide{
    position:absolute;
    top:0px;
    right:0px;
    display:none;
}

もっと良い方法があると確信しています。

4

5 に答える 5

19
document.getElementById('myElement').style.display = 'block'; // show
document.getElementById('myElement').style.display = 'none'; // hide
于 2012-08-15T05:11:16.693 に答える
6

jQuery は、非表示にする前の値を考慮しますdisplay。を起動するshow()と、その値が元に戻ります。そのため、単に要素のdisplayプロパティをblockおよびに設定するだけではありません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
}

.show()

一致した要素は、アニメーションなしですぐに表示されます。.css('display', 'block')これは、表示プロパティが最初の状態に復元されることを除いて、 の呼び出しとほぼ同じです。要素の表示値が の場合、非表示inlineにしてから表示すると、再びインラインで表示されます。

于 2012-08-15T05:16:34.347 に答える
0

.show と .hide を使用しているため、document.getElementsByClassName を使用してみてください。これらはクラスであり、ID でターゲティングしようとしています。免責事項: 古いブラウザのサポートを再確認することをお勧めします。

于 2012-08-15T05:13:27.210 に答える
0

jQuery の前は、次のメソッドを使用して要素を表示/非表示にしました。

HTMLElement.prototype.toggleDisplay = function(on_or_off, display_type) {
    if (typeof(tddisptype) == "undefined") tddisptype = "block";
    var new_display;
    if (typeof(on_or_off) != "boolean") {
        if (this.style.display == "none") new_display = display_type;
        else new_display = "none";
    } else {
        if (on_or_off) new_display = display_type;
        else new_display = "none";
    }
    this.style.display = new_display;
}​

これにより、すべての要素に toggleDisplay() 関数が追加されます。たとえば、document.getElementById() で取得できるものなどです。true要素を表示または非表示にするために、それを渡すかfalse、パラメーターとして渡すことができます。パラメーターを渡さない場合は、要素を表示するか非表示にするかを判断しようとします。2 番目の引数は、「オン」状態に関連付けられたディスプレイのタイプを指定します。上記では、デフォルトはblockです。

于 2012-08-15T05:17:39.540 に答える
0

使用するdocument.getElementById("MyId").className='show' document.getElementById("MyId").className='hide'

于 2012-08-15T05:11:49.583 に答える