5

空のdivとスペース文字が1つしかないdivを選択する方法ej:

Ej:これを選択するjqueryルールセレクター:

<div class="thumbnails"></div>
<div class="thumbnails"> </div>

しかし、これは選択しないでください。

<div class="thumbnails">Lorem ipsum amet</div>

私はこれを試しました

$('.thumbnails:empty').css('background-color', "#f0f");

とうまく動作します:

<div class="thumbnails"></div>

ただし、この場合は選択しません(スペース文字に注意してください)。

<div class="thumbnails"> </div>

テスト: http: //jsbin.com/ozohak/1/edit

4

5 に答える 5

7

フィルタ機能を使用して、テキストのない要素を検出します

$('.thumbnails').filter(function(i,v){
    return $.trim($(v).text()).length == 0;
}).css('background-color', "#f0f");

http://jsbin.com/ozohak/5/edit

編集:

それが必要な場合も、フィルター機能を使用して空の要素と1つのスペースを選択できます

$('.thumbnails').filter(function(i,v){
    return $(v).text() == '' || $(v).text() == ' ';
}).css('background-color', "#f0f");

http://jsbin.com/ozohak/10/edit

于 2013-01-07T15:35:34.023 に答える
6

独自のJqueryセレクターを作成し、トリミングされたテキストを確認できます(http://jsbin.com/ozohak/12/editを参照) 。

$.expr[':'].blank = function(obj){
  return obj.innerHTML.trim().length === 0;
};

$('.thumbnails:blank').addClass('selected');

編集: IE8以下の問題を回避するには:

$.expr[':'].blank = function(obj){
  return !$.trim($(obj).text()).length;
};

$('.thumbnails:blank').addClass('selected');
于 2013-01-07T15:38:30.273 に答える
1

filter()正規表現でaを使用して、text()空であることを確認できます。

$('.thumbnails')
    .filter(function() {
        return $(this).text().replace(/\W/gi, '') == '';
    })
    .addClass('selected');

更新された例

html()div内でHTML要素を許可する場合と比較することもできることに注意してください。

于 2013-01-07T15:36:04.553 に答える
-1

空白のコンテンツをチェックするセレクターはありませんが、役立つ可能性のあるものがあります。

$('div').each(function(i,e) {
  if ($(e).html().trim() == "")
    $(e).html("");
});

$('.thumbnails:empty').addClass('selected');

よろしく。

于 2013-01-07T15:37:31.033 に答える
-2

次のコードを使用できます

$('*').each(function() {
         if ($(this).text() == "") { // you can change this to whatever #ex: char length
                   //Do Something
         }
});
于 2013-01-07T15:34:20.017 に答える