2013-08-26 12 views
6

どのようにjQueryを使用して空のタグをすべて選択できますか?jQueryを使用して空のタグをすべて選択する方法はありますか?

私は:emptyと試みたが、それは私のオプションで作業されていない

<p></p> 
<p style="display: block"></p> 
<p> </p> 
<p>  </p> 
<p>&nbsp;</p> 

なく

<p>0</p> 
<p>Test</p> 

を選択します。これに関する助けがあれば大歓迎です。

+0

試した ':empty'を使って例を投稿できますか? – Botis

+0

実際には空ではありません。スペースはそこにあります – Rab

+0

@ラヴィ:私の謝罪、私は誤ってそれを2回投稿しました。私は次に何をすべきですか? – laradev

答えて

7

jQuery.filter()を使用してこれを行うことができます。

var empty_p = $('p').filter(function(){ 
    return !$.trim($(this).text()); 
}).get(); 
+0

空白のみを含む要素を返しますか? – doppelgreener

+0

@JonathanHobbs申し訳ありませんが、私はそれをテストしていない...今は、テストされたコードで答えを編集しました。 –

2

使用jQuery filter

$('p').filter(function() { 
    return !$(this).text().trim(); 
}); 
+0

これは、['trim()'](http://api.jquery.com/jQuery.trim/)の使用方法ではありません。 –

+1

@koala_devこれはjQueryトリムではありません。 [String.trim()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim) –

+0

混乱のために申し訳ありません、 –

1
$(document).ready(function(){ 
    $("p").each(function(index){ 
     var html = $(this).html(); 
     html = filter(html, " "); 
     html = filter(html, "&nbsp;"); 

     if ($(this).html() == ""){ 
      //YOUR CODE 
     } 
    }); 
}); 

function filter(string, char){ 
    while(string.indexOf(char) > 0){ 
     string.replace(char, ""); 
    } 
} 

JS FIDDLE

+0

空白文字に失敗し、'  ' –

+1

ああ、私はいくつかの変更を加えたと思われる質問を読むのに役立ちます。 – Seano666

0

あなたは、この使用してjQueryのfiltertrim方法を行うことができます。ここ
は作業例です:http://jsfiddle.net/snqSw/

$("p").filter(function(){ 
     $(this).text($.trim($(this).text())==""?"Works":$(this).text()); 
          }); 
-1

これを行う1つの以上の方法、代わりにtrim()の正規表現を使用して:

$('p').filter(function() { 
    return !/\S/.test($(this).text()); 
}) 

JSFiddle

(注)この(および他のすべてのこと$(this).text()に基づく溶液)も、例えばこの段落:

<p><a href="http://example.com">&nbsp;</a></p> 

かさえ:

<p><img src="http://example.com/image.gif"></p> 

あなたは段落で何をしたいのかに応じて、これは、またはあなたが望むものではないかもしれない可能性があります。そうでない場合は、もう少し複雑なものが必要になります。詳細は「空の」段落を考慮したいと思うところだけに依存します。

関連する問題