0

次のような HTML マークアップがあります。

 <tr>
    <td>
        <a href="javascript:void(0)" class="slideNextSlidable">Click Here</a>
    </td>
</tr>
<tr class="slidable">
    <td>
    <p>Hide me</p>
    </td>
</tr>

そして私のjavascript / jquery:

$(function() {
    $('.slideNextSlidable').click(function() {
        $(this).parent().next('.slidable').hide();
    });
});​

ただし、これは取得していないようです.slidable tr

クリックされたリンク.slidableの次の (または最も近い) 行を非表示にしようとしています。.slideNextSlidable

これは foreach ループにネストされています (これらの行は多数あります)

フィドルを参照してください: http://jsfiddle.net/alexjamesbrown/Zx5sR/

4

3 に答える 3

3

$ .closest()を探しているようです。jQuery APIドキュメントから:

セット内の各要素について、要素自体をテストし、DOMツリーでその祖先をトラバースすることにより、セレクターに一致する最初の要素を取得します。

そして、単純に:

$('.slideNextSlidable').click(function() {
    $(this).closest('tr').next('.slidable').hide();
});
于 2012-11-19T15:50:10.723 に答える
1

試す.closest()

$('.slideNextSlidable').click(function() {
    $(this).closest('tr').next('.slidable').hide();
});

デモ

于 2012-11-19T15:49:48.473 に答える
1
$(function() {
    $('.slideNextSlidable').click(function() {
        $(this).parent().parent().next('.slidable').hide();
    });
});

最初の親は でtd、その親はtr!

于 2012-11-19T15:51:02.183 に答える