私はjQueryを初めて使用しますが、「innerHTML」がnullの場合にdivを非表示にするコード設定を取得しようとしています. 以下のコードを使用してみました。しかし、うまくいきません!私のせいはどこですか??
if (($("#php-errors").html).length) {
$("#php-errors").css("display", "block");
}
else {
$("#php-errors").css("display", "none");
}
私はjQueryを初めて使用しますが、「innerHTML」がnullの場合にdivを非表示にするコード設定を取得しようとしています. 以下のコードを使用してみました。しかし、うまくいきません!私のせいはどこですか??
if (($("#php-errors").html).length) {
$("#php-errors").css("display", "block");
}
else {
$("#php-errors").css("display", "none");
}
1 行で、.show()および.hide()メソッドを使用する:
var hasCont = $("#php-errors").contents().length ? $("#php-errors").show() : $("#php-errors").hide();
次のような三項演算子を使用します。
var $elを と呼び、次のように使用することをお勧めします。
var $el = $("#php-errors");
var hasCont = $el.contents().length ? $el.show() : $el.hide();
はるかに読みやすく、マイクロ処理時間を節約できます;)しかし、関数間の再利用性の点で本当に役立ちます(関数の外で定義されている場合)。
if ($("#php-errors").html().length) {
$("#php-errors").css("display", "block");
}
else {
$("#php-errors").css("display", "none");
}
修正:
($("#php-errors").html).lengthする必要があります$("#php-errors").html().length
このようにコードを少しきれいにすることができます。
また、innerHTMLプロパティを三項式の条件部分として使用します。コンテンツがある場合は返されて「ブロック」が設定され、ない場合は「なし」が設定されます。
$("#php-errors").css("display", function() {
return this.innerHTML ? "block" : "none";
});
アップデート:
これがページの読み込み時にのみ実行される場合は、最初に「ブロック」に設定してからこれを実行できます。
$("#php-errors:empty").hide();
またはその逆で、「なし」に設定し、空でない場合は表示します。
$("#php-errors:not(:empty)").show();
私はこのようなことをします:
var $php_errors = $("#php-errors");
if ($php_errors.is(":empty")) {
$php_errors.hide()
}
else {
$php_errors.show();
}
それが役に立てば幸い
あなたの場合、あなたはただ欲しいようです:
$("#php-errors").toggle();
blockディスプレイをどちらかに設定したい場合やnone、まだ何も設定されていない場合は見当たりません。
あなたのロジックは冗長ではありませんか?
私はあなたが比較を逃したと思う、これを試してみてください
if ($("#php-errors").html() == "") {
$("#php-errors").css("display", "block");
}
else {
$("#php-errors").css("display", "none");
}