1

このような質問を探していましたが、見つかりません。

私はこのような構造を持っています:

<div id="productholder@(item.ProductId)" class="productholder">  
  <img src="@Html.DisplayFor(modelItem => item.Image)" alt="" />
  <div class="productinfo">
    <h2>@Html.DisplayFor(modelItem => item.Name)</h2>
    <p>@Html.DisplayFor(modelItem=> item.Description)</p>
    <br />   
  </div>
  <div class="productprice">     
    <h2>@Html.DisplayFor(modelItem => item.price):-</h2>          
    <input type="button" value="Ta bort" class="b" data-ProductImageId='@item.ProductImageId'>                          
  </div>                                   
</div>

私がやりたいのは、誰かがclass="b"divタグ全体を含むボタンをクリックすると.hide()、問題で非表示になるはずです。同じように見えるこれらのdivタグが10個あるため、divタグを指定できません。クリックしたボタン内のdivタグだけが非表示になります。

親かそのようなものを使う必要があると思いますか?

次のjqueryスクリプトを試しました。

<script type="text/javascript">
    $(document).ready(function () {
        $(".b").click(function () {
            $("div:eq(0)").hide();
        });
    });
</script>

しかし、divラッパー全体が非表示になるため、機能しないことがわかりました。

どんな種類の解決策もありがたいです!

4

4 に答える 4

1

コンテナ全体を非表示にしようとしていると思います..使用してみてくださいclosest

$(this).closest('.productholder').hide()

または親divを非表示にしようとしている場合は、単に使用します.parent()

$(this).parent().hide()

完全なコード:

$(document).ready(function () {
    $(".b").click(function () {
        $(this).closest('.productholder').hide();
        // or $(this).parent().hide()
    });
});
于 2012-10-31T15:17:12.160 に答える
1
    $(".b").click(function () {
        $(this).parent().hide();
    });

また

    $(".b").click(function () {
        $(this).parent().parent().hide();
    });
于 2012-10-31T15:17:57.060 に答える
0

ボタンの親を非表示にするだけです。

    $(".b").click(function () {
        $(this).parent('div').hide();
    });

または、階層を少し変更しても div が非表示になるようにしたい場合は、次のようにします。

    $(".b").click(function () {
        $(this).parents('div.productprice').hide();
    });
于 2012-10-31T15:16:28.040 に答える
0

基本的な DOM: すべての dom ノードには親要素があります。

$('.b').click(function() {
   $(this).parent('div.productprice').hide();
});
于 2012-10-31T15:16:30.833 に答える