-1

良い一日

次のコードを使用して、要素の 1 つの下にある空の段落を削除したいのですが、次のコードを使用しています (JS とフィドルを参照)。

私のコードは機能していますが、コードがあまりよく書かれていないことはわかっています。毎回elemtnを参照するのではなく、(this)を使用したいと思います。このコードを最適化するにはどうすればよいですか?

<div class="wpcol-one-quarter">
   <p><ahref=""><img src="" width="180" height="120" /></a></p>
</div>
<p>&nbsp;</p> <!--I want to remove this-->
<div class="wpcol-one-quarter">
   <p><a href=""><img src="" width="180" height="120" /></a></p>
</div>

JS:

$("div.wpcol-one-quarter").next('p:empty').remove();


if($("div.wpcol-one-quarter").next('p').html()=="&nbsp;") {
  $("div.wpcol-one-quarter").next('p').remove();
}

注: この 1 つの空の p タグのみを削除したいだけで、ページに存在する可能性のある他の p タグは削除したくありません

フィドル

ありがとうございました

4

3 に答える 3

4

あなたはこれを行うことができます:

$('p').filter(function(){ return $.trim(this.innerHTML)==="&nbsp;" }).remove();

HTML を作成するときにスペースや改行を挿入するのは非常に簡単なので、ベスト プラクティスとしてトリムすることをお勧めします。

デモンストレーション

于 2013-03-19T10:31:39.513 に答える
1

変数をキャッシュします。

var p = $("div.wpcol-one-quarter").next('p');
if(p.html()=="&nbsp;") {
  p.remove();
}

http://jsfiddle.net/7L4WZ/134/

于 2013-03-19T10:34:17.707 に答える
0

以下のコードを試してください。

$('p:empty').remove();
$('p').filter(function(){ return $.trim(this.innerHTML)==="&nbsp;" }).remove();          

詳細については、http://jsfiddle.net/7L4WZ/132/を参照してください。

于 2013-03-19T10:36:48.543 に答える