7

私は周りを見回して、これについて多くの質問を見つけましたが、どの解決策も私にはうまくいきません。私はこのような構造を持っています:

<div class="pricetag">
    <div class="price">400</div>
</div>

<div class="pricetag">
    <div class="price"></div>
</div>

<div class="pricetag">
    <div class="price">250</div>
</div>

私がやりたいのは、.priceに何も含まれていない.pricetagを非表示にすることです。同じページに多くの異なる.pricetagがある可能性がありますが、空の.priceを持つものを非表示にしたいだけです。

これはjQueryで可能ですか?さまざまなスクリプトを試しましたが、どれも正しく機能しませんでした。

4

6 に答える 6

19

空の要素にテキストノード(改行文字など)が含まれないことを前提として、:emptyセレクターとメソッドを使用できます。parent.price

$(".price:empty").parent().hide();

これが実際のです。

于 2012-07-02T08:50:31.723 に答える
1

このjQueryスクリプトを試してください

$(document).ready(function(e)
{
    $('div.pricetag').each(function(key, value)
    {
        if(!$('div.price', value).html()) $(value).hide();
    });
});
于 2012-07-02T09:03:11.137 に答える
1
$('.price').each(function(){
  if ($(this).text().length == 0) {
    $(this).parent().hide()
  }
})
于 2012-07-02T08:49:39.880 に答える
1

作業デモ http://jsfiddle.net/mm4pX/1/

.is(':empty')divが空かどうかを確認してから、親divを非表示にするために使用できます。

お役に立てれば、

コード

$('.price').each(function() {
    if $('.price').is(':empty') $(this).parent().hide()
});​
于 2012-07-02T08:51:31.667 に答える
1

このjqueryコードはそれを行います

$(function(){
  $(".price").each(function(){
    if($(this).html()=="")
      $(this).parent(".pricetag").hide();
  });
});

jsbinの例:http ://jsbin.com/ovagus

于 2012-07-02T08:52:05.230 に答える
1

要素に空白が含まれている場合、:emptyセレクターは要素を選択しません。それが問題である場合は、空白から要素を削除できます。

function isEmpty(element){
  return !$.trim(element.html())
}

$(".box").each(function() {
  var box = $(this);
  var body = box.find(".box-body");

  if(isEmpty(body)) {
    console.log("EMPTY");
    box.hide();
  } 
});

http://codepen.io/DanAndreasson/pen/jWpLgM

于 2016-02-02T08:38:06.047 に答える