私はフォームを持っており、jQuery の load 関数を介して新しい入力要素と選択要素を動的に追加しています。ロードされた要素が意図的に空である場合があり、その場合、スタイルを壊さないようにコンテナ div を非表示にする必要があります。
問題は、ロードされた要素を数えることができないように見えるため、非表示にする必要があるかどうかわからないことです。
たとえば、私はこれを持っています:
<div id="param_container"></div>
そして、いくつかのドロップダウンメニューの変更で、この関数をバインドしました:
alert($('#param_container').children().length);
// Returns and loads new element correctly. Can be empty.
$('#param_container').load('/get_params', {cat:category});
if ($('#param_container').children().length ) {
$('#param_container').css('display', 'block');
} else {
$('#param_container').css('display', 'none');
}
alert($('#param_container').children().length);
新しい子要素が追加されても、子の長さは常に 0 です。
何かご意見は?
編集:
私の解決策
$('#param_container').load('/get_params', {cat:category}, function(response) {
if (response) {
$('#param_container').css('display', 'block');
} else {
$('#param_container').css('display', 'none');
}
});