2017-05-11 3 views
1

私はクラスで次の要素を隠そうとしていますが、html構造が混乱していると思います。jQueryは次の要素を変更します

HTML:

<tr> 
<td> 
    <input type="number" value="1" name="product_quantity" class="form-quantity" /> 
</td> 
<td><a class="add_to_cart_button" href="#">Add To Cart</a></td> 
</tr> 

JS:

$("tr").each(function() { 
$(this).find(".form-quantity").change(function() { 
    $(this).closest(".add_to_cart_button").hide(); 
}); 
}); 

JSフィドル私が何を意味するかを確認する - https://jsfiddle.net/vpvw6t53/

私は.parentを使用してみましたが、.childrenとここに尋ねるので.sibling :)

答えて

0

感謝。そこで私は答えを更新しました。

$(document).ready(function() { 
    $(".form-quantity").change(function() { 
    $(this).parent().next().find(".add_to_cart_button").hide(); 
    }); 
}); 

また、tr要素をループする必要はないので、コードから削除しました。

$(document).ready(function() { 
 
    $(".form-quantity").change(function() { 
 
    $(this).parent().next().find(".add_to_cart_button").hide(); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 

 
    <tr> 
 
    <td> 
 
     <input type="number" value="1" name="product_quantity" class="form-quantity" /> 
 
    </td> 
 
    <td><a class="add_to_cart_button" href="#">Add To Cart</a></td> 
 
    </tr> 
 
    <tr> 
 
    <td> 
 
     <input type="number" value="1" name="product_quantity" class="form-quantity" /> 
 
    </td> 
 
    <td><a class="add_to_cart_button" href="#">Add To Cart</a></td> 
 
    </tr> 
 
</table>

+1

これは間違っています。ボタンは、入力の次の要素ではありません。それらは両方とも異なる '​​'要素にあります。あなたのフィドルで動作する唯一の理由は、 '

'を省いたからです。そのため、 ''と '​​'の要素は無視されます。 – Barmar

+0

」のバージョンについてはhttps://jsfiddle.net/vpvw6t53/9/を​​参照してください。動作しません。 – Barmar

+1

@Barmer 9は、解決策が間違っていることを正しく説明しているので、改善する必要があります。 – Guybrush

1

私は現時点でそれを試すことはできませんが、

$("tr").each(function() { 
    $(this).find(".form-quantity").change(function() { 
    $(this).closest("tr").find(".add_to_cart_button").hide(); 
}); 
}); 

動作するはずです。 Input要素を選択することに注意してください。私の解決策は、実際のtableに関連して動作しないだろうと指摘し@barmarする

+1

私の代わりに '.parent(の' .closest( "TR")を ')を使用して。親()'、より柔軟であることを示唆しています。 – Barmar

+0

あなたはそうです。ありがとうございました! – Guybrush

関連する問題