Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get next element with the same class

Tags:

jquery

I use a click event for an element with certain class. Inside the click event function I need to get the next element on page with the same class. I tried:

$('.class').click(function() {
    var $next = $(this).next('.class')  
});

And:

$('.class').click(function() {
    var $next = $(this).parent().parent().parent().next('.class')  
});

The .class is a div inside td in a table, that's why three times parent().

My HTML is something like this (The .class is .drag):

<table cellspacing="0" cellpadding="0" border="0" class="black8">
<tr class="trow1 drop trow1_over" 
    rel="0,1">
    <td>
            <div class="drop rootFolder" 
                 rel="0,1"></div>
    </td>
    <td width="100%" 
        class="folderListOnclick">

            <span>.. (koreňový adresár)</span>
    </td>
    <td>
    </td>
    <td>
    </td>
</tr><tr class="trow1">
    <td>
        <div class="drag drop ordinaryFolder" 
             rel="1,1" 
             style="width: 40px;">

        </div>
    </td>
    <td width="100%" 
        class="folderListOnclick" 
        rel="1">
            <span>aaa</span>
    </td>
    <td>
        <div class="button_mini folderEditOnclick" 
             rel="1">
                    <span></span>

        </div>
    </td>
    <td>
        <div class="button_mini folderDeleteOnclick" 
             rel="1">
                    <span><span>
        </div>
    </td>
</tr><tr class="trow1">
    <td>

        <div class="drag drop ordinaryFolder" 
             rel="19,1" 
             style="width: 50px;">
        </div>
    </td>
    <td width="100%" 
        class="folderListOnclick" 
        rel="19">
            <span>subaaa</span>
    </td>
    <td>
        <div class="button_mini folderEditOnclick" 
             rel="19">

                    <span></span>
        </div>
    </td>
    <td>
        <div class="button_mini folderDeleteOnclick" 
             rel="19">
                    <span><span>
        </div>
    </td>
</tr>
</table>
like image 334
Richard Knop Avatar asked Nov 24 '10 08:11

Richard Knop


1 Answers

How about this? You should check for off-by-one errors though, because I haven't tested it.

$('.class').click(function () {
  var index = $('.class').index($(this));
  var $next = $('.class').slice(index+1,index+2);
  ...
});
like image 118
Nathan MacInnes Avatar answered Oct 17 '22 06:10

Nathan MacInnes