web-dev-qa-db-ja.com

div要素が空かどうかを確認する方法

可能性のある複製:
jQueryを使用してhtml要素が空かどうかを確認する

私はこのような空のdivを持っています:

<div id="cartContent"></div>

空かどうかを確認する必要があります。空の場合はtrueを返してから、

要素が追加されます。そうでない場合はfalseを返し、他の関数が実行されます。存在するかどうかを確認する最良の方法は何ですか

div内の要素?

ありがとう

16
user208709

.is() を使用できます。

_if( $('#leftmenu').is(':empty') ) {
_

または、 length プロパティをテストして、見つかったかどうかを確認することもできます。

_if( $('#leftmenu:empty').length ) {
_

$.trim()を使用して、空白を削除し(必要な場合)、コンテンツの長さを確認できます。

_if( !$.trim( $('#leftmenu').html() ).length ) {
_
29
Gordon Freeman

プレーンなJavaScriptを使用する

 var isEmpty = document.getElementById('cartContent').innerHTML === "";

そして、jqueryを使用している場合は、次のようにすることができます

 var isEmpty = $("#cartContent").html() === "";
35
dopeddude

他の人がすでに指摘したように、jQueryで:emptyを次のように使用できます。

$('#cartContent:empty').remove();

空の場合、#cartContent divは削除されます。

しかし、ここで人々が提案しているこのテクニックや他のテクニックは、空白を含むテキストノードがある場合、空とはみなされないため、あなたが望むことをしないかもしれません。したがって、これは空ではありません。

<div> </div>

あなたはそれを空と考えたいかもしれません。

私はしばらく前にこの問題を抱えていたので、この小さなjQueryプラグインを作成しました。コードに追加するだけです。

jQuery.expr[':'].space = function(elem) {
  var $elem = jQuery(elem);
  return !$elem.children().length && !$elem.text().match(/\S/);
}

そして今、あなたは使用することができます

$('#cartContent:space').remove();

divが空であるか、空白のみを含む場合、divを削除します。もちろん、削除するだけでなく、好きなことをすることができます。

$('#cartContent:space').append('<p>It is empty</p>');

次のように:notを使用できます。

$('#cartContent:not(:space)').append('<p>It is not empty</p>');

私が望んでいたことを確実に行ったこのテストで出てきたので、プラグインからそれを取り出してスタンドアロンテストとして使用できます:

これはjQueryオブジェクトに対して機能します。

function testEmpty($elem) {
  return !$elem.children().length && !$elem.text().match(/\S/);
}

これはDOMノードで機能します:

function testEmpty(elem) {
  var $elem = jQuery(elem);
  return !$elem.children().length && !$elem.text().match(/\S/);
}

これは.trimを使用するよりも優れています空白ではない文字が1文字でもある場合は文字列。

それが役に立てば幸い。

9
rsp

Is関数を使用できます

if( $('#cartContent').is(':empty') ) { }

または長さを使用します

if( $('#cartContent:empty').length ) { }
6
muthu
var empty = $("#cartContent").html().trim().length == 0;
3
Kevin Bowersox
if ($("#cartContent").children().length == 0) 
{
     // no child
}
1
Iswanto San