1

ここでこの単純なコードに本当に苦労しています。#setactionsuccess を含むセクションが存在するかどうかを確認しています。存在しない場合は、セクションを作成してコンテナーの先頭に追加します。最初の部分はスムーズに動作しますが、「else」にはなりません (そして条件が満たされている - 私はそれをトリプルチェックしました)。どんな助けでも大歓迎です。

if ($('#setactionsuccess')){
    var currenttime = new Date();
    $('#setactionsuccess').empty();
    $('#setactionsuccess').html('<h2>Set successfully deleted</h2><p>Set was successfully removed from this Edition on '+currenttime+'</p>');
} else {
    console.log('here');
    var string = '<section class="successful" id="setactionsuccess"><h2>Set successfully deleted</h2><p>Set was successfully removed from this Edition on '+currenttime+'</p></section>';
    console.log(string);
    $('#currentsets').prepend(string);
}
4

6 に答える 6

5

これを試して

if($('#setactionsuccess').length > 0)
于 2012-08-10T12:14:18.510 に答える
1

if ($('#setactionsuccess'))id setactionsuccess dosentを持つ要素が存在する場合でも
、javascript cheks forandnullおよびundefinedjqueryがanullまたはdを返すことはないため、常にtrueを返します 。セレクターの長さを探してみてくださいundefine
$('#setactionsuccess').length

于 2012-08-10T12:16:27.303 に答える
1

一致するものがない場合でも、常にセレクターから何かを取得します。一致数を 0 に対してチェックする必要があります。

于 2012-08-10T12:14:33.923 に答える
1

を使用して要素が存在するかどうかを確認できますlength

if($('#setactionsuccess').length) {
   ...
}
于 2012-08-10T12:14:50.837 に答える
0

常に id のブロックが#setactionsuccessあり、空であるかどうかを確認する必要がある場合、それが正しい解決策です。

if ($('#setactionsuccess'.text().length != 0)){
    var currenttime = new Date();
    $('#setactionsuccess').empty();
    $('#setactionsuccess').html('<h2>Set successfully deleted</h2><p>Set was successfully removed from this Edition on '+currenttime+'</p>');
} else {
    console.log('here');
    var string = '<section class="successful" id="setactionsuccess"><h2>Set successfully deleted</h2><p>Set was successfully removed from this Edition on '+currenttime+'</p></section>';
    console.log(string);
    $('#currentsets').prepend(string);
}
于 2012-08-10T12:22:20.037 に答える
0
if ($(selector).length)

このコードで確認できます。

于 2012-08-10T12:28:43.157 に答える