3

私はこのコードを持っています: (jquery)

    alert($('#feedback').text());
    if ($('#feedback').text() == "") {
        alert("has content");
    } else {
        alert("no content");
    }

プラン テキスト コンテンツの #feedback div をテストするために使用しています。しかし、条件をどのようにフォーマットしても、コンテンツがあるかどうかに関係なく、else ステートメントは常に実行されます。

ここでどこが間違っていますか?

html:

<div id="feedback" class="hide feedback">
    <p>generated message</p>
</div>
4

6 に答える 6

3

HTML の例に基づいて、div が空であると想定されている場合、次のようなものがあると想定します。

<div id="feedback" class="hide feedback">
    <p></p>
</div>

その場合、.text()div の は not""であり、"\n\n"(2 つの改行) です。で改行を削除する必要があります$.trim()<p>(改行がある場合はタグがなくても同様です。)

if( $.trim( $( '#feedback' ).text() ) == "" ) {
    alert( "no content" );
} else {
    alert( "has content" );
}
于 2012-07-23T14:58:33.783 に答える
1

チェックするだけ!

$('#feedback').length値を確認してください

if ($('#feedback').length>0  && $.trim($('#feedback').text()) != "") {
    alert("has content");
} else {
    alert("no content"); // or no element
}
于 2012-07-23T14:52:53.787 に答える
0

そうではありませんか:

if ($('#feedback').text() != "") {
    alert("has content");
} else {
    alert("no content");
}
于 2012-07-23T14:52:36.717 に答える
0

別のオプション:

if ($('#feedback p:empty').length) {
    alert("empty");
} else {
    alert("has content");
}
于 2012-07-23T15:08:02.950 に答える
-1

以下を使用できます。

if($('#feedback').is(':empty')) {
   alert("no content");
} else {
   alert("has content");
}
于 2012-07-23T14:59:13.677 に答える
-1

元に戻されています...

alert($('#feedback').text());
if ($('#feedback').text() == "") {
    alert("no content");
} else {
    alert("has content");
}

その修正されました:)

于 2012-07-23T14:52:31.343 に答える