3

私はこれらのフォーラムを検索している間、このコードをこの1日間機能させようとしてきましたが、成功しませんでした。

divの中にコンテンツがない場合は、コンテナを非表示にしようとしdivています。

私が持っているスクリプトは以下のとおりです。

$('.video-centre').each(function(){
  if ($(this).find('.video-thumb p').text().length == "")
    $(this).find('.video-centre').css("display", "none");

});

これを適用しようとしているHTMLは次のとおりです。

<div class="video-centre">
  <div class="video-point">
    <img src="<?php echo get_bloginfo('template_url') ?>/images/video-point.jpg" alt="video pointer" />
  </div>
  <div class="video-thumb">
    <?php the_field('testimonials'); ?>
  </div>
  <p class="video-more">
    <a href="javascript:animatedcollapse.show(['expandable-1'])">View More</a>
  </p>
  <div id="expandable-1">
    <div class="video-thumb">
      <?php the_field('testimonials_hidden'); ?>
    </div>
    <p class="video-close">
      <a href="javascript:animatedcollapse.hide(['expandable-1'])">Close</a>
    </p>
  </div>
</div>

基本的に、ワードプレス内では、クライアントはビデオを追加する機会があります。少し時間がかかりますが、pタグに包まれます。ただし、特定の領域に何もアップロードしない場合は、コンテナdivを使用してdisplay:none、動画がアップロードされている場合はコンテナのみが表示されるようにします。

divを見て、それが空であるかどうかを言う簡単な方法がある場合は、コンテナdivに何も表示されないようにします。それを試してみてください。

4

6 に答える 6

7

:empty疑似クラスを使用する

if ($(this).find('.video-thumb p').is(':empty'))

<p></p>これは、空の段落( )があるかどうかをチェックしますが、

if ($(this).find('.video-thumb').is(':empty'))

空の.video-thumb要素をチェックします


編集後:div内にスペースがある場合、条件はfalseを返すため、簡単にチェックすることをお勧めします

if ($(this).find('.video-thumb p').length === 0)

フィドルの例:http://jsfiddle.net/6nyF8/6/

于 2012-09-07T10:22:23.113 に答える
2

あなたはいくつかの方法でそれを行うことができます。

$('.video-centre').each(function(){
   if($(this).find('div.video-thumb').html('') == '')
      $(this).hide();
});

また

$('.video-centre').each(function(){
   if($(this).find('div.video-thumb').children().length == 0)
      $(this).hide();
});
于 2012-09-07T10:41:55.970 に答える
0

私はhtmlタグとの間のラインフィードを再構築しようとします

<div class="video-thumb">
<?php the_field('testimonials'); ?>
</div>

する必要があります

<div class="video-thumb"><?php the_field('testimonials'); ?></div>

しかし、PHPでトリックを実行することもできます。

<?php if (the_field('testimonials')=="") $style=" style='display:none'";?>
<div class="video-thumb" <?php print $style;?>>
<?php the_field('testimonials'); ?>
</div>
于 2012-09-07T10:41:14.207 に答える
0

Qを理解していただければ幸いです。これが、私が思いついたフィドルです。素晴らしくてシンプル。

if ($('.video-centre').find('div:hidden').size() > 0) {
    $('.video-centre').children().hide();
}
于 2012-09-07T10:37:19.810 に答える
0
if ($(this).find('.video-thumb p').text() == "")

また

if ($(this).find('.video-thumb p').is(':empty'))
于 2012-09-07T10:25:25.953 に答える
0

また、striptags関数を使用して文字列をチェックできるため、「testimonials」値から、組み込み関数「striptags」でphpを使用してタグを削除し、簡単に比較できるテキストのみが残るようにします。

于 2012-09-07T12:00:39.800 に答える