2

オブジェクトを動的に作成しています。どうやってアクセスすればいいのだろう?これらのオブジェクトの一部は、クリック以外の方法 (プログラム、ボタンのクリック、リンクなど) で非表示にする必要があります。だから私は.onを使うことができるとは思わない. これらにアクセスして非表示にするにはどうすればよいですか?

$(document).ready(function() {
$('body').append('<div id="testdiv">Test DIV</div>');

}); 

$('#testdiv').hide();
4

2 に答える 2

5

あなたはあなたの論理を逆にします。の代わりに.append()、を使用する必要があります.appendTo()

var myRef = $("<div id=\"testdiv\">Test DIV</div>").appendTo( document.body );

そうすれば、新しく作成されたDOMノード/ jQueryオブジェクトへの参照を保持できます。

myRef.hide();

キャッシュされた参照を変数に格納することをお勧めします。そうすれば、いわば純粋なECMAランドからノードにアクセスできます。DOMノードを再クエリする必要性は、効率がはるかに低くなります。

注意の一言:によって宣言された変数は、var独自の関数スコープのみを実行します。つまり、準備完了ハンドラーの「外部」からその参照にアクセスする場合は、たとえば、親コンテキストでその変数を宣言する必要があります。

于 2012-12-05T00:56:30.093 に答える
2

$('#testdiv').hide();ドキュメント内を移動する必要があることを除いて、すでに持っているものは機能するはずです(したがって、要素が作成される前にそれを呼び出さないでください)。

もう1つの答えは、それを行うためのよりクリーンな方法と、私がそれを行う方法です。

于 2012-12-05T00:56:27.857 に答える